rise-wallet 0.1.4-beta.2 → 0.2.29

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 +64 -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-o468kGU4.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 +2 -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,893 @@
1
+ import * as Bytes from 'ox/Bytes'
2
+ import * as Hash from 'ox/Hash'
3
+ import * as Hex from 'ox/Hex'
4
+ import * as Json from 'ox/Json'
5
+ import * as PersonalMessage from 'ox/PersonalMessage'
6
+ import * as Provider from 'ox/Provider'
7
+ import * as PublicKey from 'ox/PublicKey'
8
+ import * as RpcResponse from 'ox/RpcResponse'
9
+ import * as Secp256k1 from 'ox/Secp256k1'
10
+ import * as TypedData from 'ox/TypedData'
11
+ import * as WebAuthnP256 from 'ox/WebAuthnP256'
12
+ import { waitForCallsStatus } from 'viem/actions'
13
+ import * as Account from '../../../viem/Account.js'
14
+ import * as ContractActions from '../../../viem/ContractActions.js'
15
+ import * as RelayActions_internal from '../../../viem/internal/relayActions.js'
16
+ import * as Key from '../../../viem/Key.js'
17
+ import * as RelayActions from '../../../viem/RelayActions.js'
18
+ import * as Erc8010 from '../erc8010.js'
19
+ import * as Mode from '../mode.js'
20
+ import * as PermissionsRequest from '../permissionsRequest.js'
21
+ import * as RequiredFunds from '../requiredFunds.js'
22
+ import * as Siwe from '../siwe.js'
23
+ import * as Tokens from '../tokens.js'
24
+ import * as U from '../utils.js'
25
+
26
+ /**
27
+ * Mode for a WebAuthn-based environment that interacts with the Porto
28
+ * Relay. Account management, signing, and execution is coordinated
29
+ * between the library and the Relay.
30
+ *
31
+ * @param parameters - Parameters.
32
+ * @returns Mode.
33
+ */
34
+ export function relay(parameters: relay.Parameters = {}) {
35
+ const config = parameters
36
+ const { mock, multichain = true, webAuthn } = config
37
+
38
+ let address_internal: Hex.Hex | undefined
39
+ let email_internal: string | undefined
40
+
41
+ const keystoreHost = (() => {
42
+ if (config.keystoreHost === 'self') return undefined
43
+ if (
44
+ typeof window !== 'undefined' &&
45
+ window.location?.hostname === 'localhost'
46
+ )
47
+ return undefined
48
+ return config.keystoreHost
49
+ })()
50
+
51
+ return Mode.from({
52
+ actions: {
53
+ async addFunds() {
54
+ throw new Provider.UnsupportedMethodError()
55
+ },
56
+
57
+ async createAccount(parameters) {
58
+ const {
59
+ admins,
60
+ email,
61
+ label,
62
+ permissions,
63
+ internal,
64
+ signInWithEthereum,
65
+ } = parameters
66
+ const { client } = internal
67
+
68
+ const eoa = Account.fromPrivateKey(Secp256k1.randomPrivateKey())
69
+
70
+ const feeTokens = await Tokens.getTokens(client)
71
+
72
+ const adminKey = !mock
73
+ ? await Key.createWebAuthnP256({
74
+ createFn: webAuthn?.createFn,
75
+ label:
76
+ label ||
77
+ `${eoa.address.slice(0, 8)}\u2026${eoa.address.slice(-6)}`,
78
+ rpId: keystoreHost,
79
+ userId: Bytes.from(eoa.address),
80
+ })
81
+ : Key.createHeadlessWebAuthnP256()
82
+ const sessionKey = await PermissionsRequest.toKey(permissions, {
83
+ chainId: client.chain.id,
84
+ feeTokens,
85
+ })
86
+
87
+ const adminKeys = admins?.map((admin) => Key.from(admin))
88
+
89
+ const account = await RelayActions.upgradeAccount(client, {
90
+ account: eoa,
91
+ authorizeKeys: [
92
+ adminKey,
93
+ ...(adminKeys ?? []),
94
+ ...(sessionKey ? [sessionKey] : []),
95
+ ],
96
+ })
97
+
98
+ address_internal = eoa.address
99
+
100
+ if (email && label)
101
+ await RelayActions.setEmail(client, {
102
+ email: label,
103
+ walletAddress: account.address,
104
+ })
105
+
106
+ const signInWithEthereum_response = await (async () => {
107
+ if (!signInWithEthereum) return undefined
108
+
109
+ const message = await Siwe.buildMessage(client, signInWithEthereum, {
110
+ address: account.address,
111
+ })
112
+ const signature = await Account.sign(eoa, {
113
+ payload: PersonalMessage.getSignPayload(Hex.fromString(message)),
114
+ })
115
+ const signature_erc8010 = await Erc8010.wrap(client, {
116
+ address: account.address,
117
+ signature,
118
+ })
119
+
120
+ return { message, signature: signature_erc8010 }
121
+ })()
122
+
123
+ return {
124
+ account: {
125
+ ...account,
126
+ signInWithEthereum: signInWithEthereum_response,
127
+ },
128
+ }
129
+ },
130
+
131
+ async getAccountVersion(parameters) {
132
+ const { address, internal } = parameters
133
+ const { client } = internal
134
+
135
+ const { contracts } = await RelayActions.getCapabilities(client)
136
+ const { accountImplementation } = contracts
137
+
138
+ const latest = await ContractActions.getEip712Domain(client, {
139
+ account: Account.from(accountImplementation),
140
+ }).then((x) => x.version)
141
+
142
+ const current = await ContractActions.getEip712Domain(client, {
143
+ account: address,
144
+ })
145
+ .then((x) => x.version)
146
+ // TODO: get counterfactual account version via Relay.
147
+ .catch(() => latest)
148
+
149
+ if (!current || !latest) throw new Error('version not found.')
150
+
151
+ return { current, latest }
152
+ },
153
+
154
+ async getAssets(parameters) {
155
+ const { account, chainFilter, assetFilter, assetTypeFilter, internal } =
156
+ parameters
157
+ const { client } = internal
158
+
159
+ const result = await RelayActions.getAssets(client, {
160
+ account,
161
+ assetFilter,
162
+ assetTypeFilter,
163
+ chainFilter,
164
+ })
165
+
166
+ return result
167
+ },
168
+
169
+ async getCallsStatus(parameters) {
170
+ const { id, internal } = parameters
171
+ const { client } = internal
172
+
173
+ const result = await RelayActions_internal.getCallsStatus(client, {
174
+ id,
175
+ })
176
+
177
+ return {
178
+ atomic: true,
179
+ chainId: Hex.fromNumber(client.chain.id),
180
+ id,
181
+ receipts: result.receipts?.map((receipt) => ({
182
+ blockHash: receipt.blockHash,
183
+ blockNumber: Hex.fromNumber(receipt.blockNumber),
184
+ gasUsed: Hex.fromNumber(receipt.gasUsed),
185
+ logs: receipt.logs,
186
+ status: receipt.status,
187
+ transactionHash: receipt.transactionHash,
188
+ })),
189
+ status: result.status,
190
+ version: '1.0',
191
+ }
192
+ },
193
+
194
+ async getCapabilities(parameters) {
195
+ const { chainIds, internal } = parameters
196
+ const { client } = internal
197
+
198
+ const base = {
199
+ atomic: {
200
+ status: 'supported',
201
+ },
202
+ atomicBatch: {
203
+ supported: true,
204
+ },
205
+ feeToken: {
206
+ supported: true,
207
+ tokens: [],
208
+ },
209
+ merchant: {
210
+ supported: true,
211
+ },
212
+ permissions: {
213
+ supported: true,
214
+ },
215
+ requiredFunds: {
216
+ supported: Boolean(multichain),
217
+ tokens: [],
218
+ },
219
+ } as const
220
+
221
+ const capabilities = await RelayActions.getCapabilities(client, {
222
+ chainIds: chainIds ? chainIds.map((id) => Hex.toNumber(id)) : 'all',
223
+ raw: true,
224
+ })
225
+
226
+ return Object.entries(capabilities).reduce(
227
+ (acc, [chainId, capabilities]) => ({
228
+ // biome-ignore lint/performance/noAccumulatingSpread: _
229
+ ...acc,
230
+ [chainId]: {
231
+ ...base,
232
+ ...capabilities,
233
+ feeToken: {
234
+ supported: true,
235
+ tokens: capabilities.fees.tokens,
236
+ },
237
+ requiredFunds: {
238
+ supported: Boolean(multichain),
239
+ tokens: multichain
240
+ ? capabilities.fees.tokens.filter((token) => token.interop)
241
+ : [],
242
+ },
243
+ },
244
+ }),
245
+ {} as Record<Hex.Hex, typeof base>,
246
+ ) as Record<Hex.Hex, typeof base>
247
+ },
248
+
249
+ async getKeys(parameters) {
250
+ const { account, chainIds, internal } = parameters
251
+ const { client } = internal
252
+
253
+ const keys = await RelayActions.getKeys(client, {
254
+ account,
255
+ chainIds,
256
+ })
257
+
258
+ return U.uniqBy(
259
+ [...keys, ...(account.keys ?? [])],
260
+ (key) => key.publicKey,
261
+ )
262
+ },
263
+
264
+ async grantAdmin(parameters) {
265
+ const { account, internal } = parameters
266
+ const { client } = internal
267
+
268
+ const authorizeKey = Key.from(parameters.key, {
269
+ chainId: client.chain.id,
270
+ })
271
+
272
+ const feeToken = await Tokens.resolveFeeToken(client, {
273
+ addressOrSymbol: parameters.feeToken,
274
+ store: internal.store,
275
+ })
276
+
277
+ const { id } = await RelayActions.sendCalls(client, {
278
+ account,
279
+ authorizeKeys: [authorizeKey],
280
+ feeToken: feeToken?.address,
281
+ webAuthn,
282
+ })
283
+ await waitForCallsStatus(client, {
284
+ id,
285
+ pollingInterval: 500,
286
+ })
287
+
288
+ return { key: authorizeKey }
289
+ },
290
+
291
+ async grantPermissions(parameters) {
292
+ const { account, internal, permissions } = parameters
293
+ const { client } = internal
294
+
295
+ const feeTokens = await Tokens.getTokens(client)
296
+
297
+ // Parse permissions request into a structured key.
298
+ const authorizeKey = await PermissionsRequest.toKey(permissions, {
299
+ chainId: client.chain.id,
300
+ feeTokens,
301
+ })
302
+ if (!authorizeKey) throw new Error('key to authorize not found.')
303
+
304
+ const adminKey = account.keys?.find(
305
+ (key) => key.role === 'admin' && key.privateKey,
306
+ )
307
+ if (!adminKey) throw new Error('admin key not found.')
308
+
309
+ const { context, digest } = await RelayActions.prepareCalls(client, {
310
+ account,
311
+ authorizeKeys: [authorizeKey],
312
+ key: adminKey,
313
+ preCalls: true,
314
+ })
315
+ const signature = await Key.sign(adminKey, {
316
+ address: null,
317
+ payload: digest,
318
+ })
319
+ await RelayActions.sendPreparedCalls(client, {
320
+ context,
321
+ key: adminKey,
322
+ signature,
323
+ })
324
+
325
+ return { key: authorizeKey }
326
+ },
327
+
328
+ async loadAccounts(parameters) {
329
+ const { internal, permissions, signInWithEthereum } = parameters
330
+ const { client } = internal
331
+
332
+ const feeTokens = await Tokens.getTokens(client)
333
+
334
+ const authorizeKey = await PermissionsRequest.toKey(permissions, {
335
+ chainId: client.chain.id,
336
+ feeTokens,
337
+ })
338
+
339
+ // Prepare calls to sign over the session key or SIWE message to authorize.
340
+ // TODO: figure out with relay if we can prepare the "precall" here also.
341
+ // prepareCalls requires the EOA address, but we don't know it here.
342
+ const { digest, digestType, message } = await (async () => {
343
+ if (signInWithEthereum && parameters.address) {
344
+ const message = await Siwe.buildMessage(
345
+ client,
346
+ signInWithEthereum,
347
+ {
348
+ address: parameters.address,
349
+ },
350
+ )
351
+ return {
352
+ context: undefined,
353
+ digest: PersonalMessage.getSignPayload(Hex.fromString(message)),
354
+ digestType: 'siwe',
355
+ message,
356
+ } as const
357
+ }
358
+ return {
359
+ context: undefined,
360
+ digest: '0x',
361
+ message: undefined,
362
+ } as const
363
+ })()
364
+
365
+ const { address, credentialId, webAuthnSignature } =
366
+ await (async () => {
367
+ if (mock) {
368
+ if (!address_internal)
369
+ throw new Error('address_internal not found.')
370
+ return {
371
+ address: address_internal,
372
+ credentialId: undefined,
373
+ } as const
374
+ }
375
+
376
+ // If the address and credentialId are provided, we can skip the
377
+ // WebAuthn discovery step.
378
+ if (parameters.address && parameters.key)
379
+ return {
380
+ address: parameters.address,
381
+ credentialId: parameters.key.credentialId,
382
+ }
383
+
384
+ // Discovery step. We need to do this to extract the key id
385
+ // to query for the Account.
386
+ // We will also optionally sign over a digest to authorize
387
+ // a session key if the user has provided one.
388
+ const webAuthnSignature = await WebAuthnP256.sign({
389
+ challenge: digest,
390
+ getFn: webAuthn?.getFn,
391
+ rpId: keystoreHost,
392
+ })
393
+ const response = webAuthnSignature.raw
394
+ .response as AuthenticatorAssertionResponse
395
+
396
+ const address = Bytes.toHex(new Uint8Array(response.userHandle!))
397
+ const credentialId = webAuthnSignature.raw.id
398
+
399
+ return { address, credentialId, webAuthnSignature }
400
+ })()
401
+
402
+ const keys = await RelayActions.getKeys(client, {
403
+ account: address,
404
+ chainIds: [client.chain.id],
405
+ })
406
+
407
+ // Instantiate the account based off the extracted address and keys.
408
+ const account = Account.from({
409
+ address,
410
+ keys: [...keys, ...(authorizeKey ? [authorizeKey] : [])].map(
411
+ (key, i) => {
412
+ // Assume that the first key is the admin WebAuthn key.
413
+ if (i === 0) {
414
+ if (key.type === 'webauthn-p256')
415
+ return Key.fromWebAuthnP256({
416
+ ...key,
417
+ credential: {
418
+ id: credentialId!,
419
+ publicKey: PublicKey.fromHex(key.publicKey),
420
+ },
421
+ id: address,
422
+ rpId: keystoreHost,
423
+ })
424
+ }
425
+ return key
426
+ },
427
+ ),
428
+ })
429
+
430
+ const adminKey = Account.getKey(account, { role: 'admin' })!
431
+
432
+ // Get the signature of the authorize session key pre-call.
433
+ const signature = await (async () => {
434
+ // If we don't have a digest, we never signed over anything.
435
+ if (digest === '0x') return undefined
436
+
437
+ // If we signed to authorize the session key at credential
438
+ // discovery, we will need to form the signature and store it
439
+ // as a signed pre-call.
440
+ if (webAuthnSignature)
441
+ return Key.wrapSignature(
442
+ Key.serializeWebAuthnSignature(webAuthnSignature),
443
+ {
444
+ keyType: 'webauthn-p256',
445
+ publicKey: adminKey.publicKey,
446
+ },
447
+ )
448
+
449
+ // Otherwise, we will sign over the digest for authorizing
450
+ // the session key.
451
+ return await Key.sign(adminKey, {
452
+ address: account.address,
453
+ payload: digest,
454
+ })
455
+ })()
456
+
457
+ // Prepare and send the authorize key pre-call.
458
+ if (authorizeKey) {
459
+ const { context, digest } = await RelayActions.prepareCalls(client, {
460
+ account,
461
+ authorizeKeys: [authorizeKey],
462
+ preCalls: true,
463
+ })
464
+ const signature = await Key.sign(adminKey, {
465
+ address: null,
466
+ payload: digest,
467
+ })
468
+ await RelayActions.sendPreparedCalls(client, {
469
+ context,
470
+ key: adminKey,
471
+ signature,
472
+ })
473
+ }
474
+
475
+ const signInWithEthereum_response = await (async () => {
476
+ if (!signInWithEthereum) return undefined
477
+
478
+ if (digestType === 'siwe' && message && signature) {
479
+ const signature_erc8010 = await Erc8010.wrap(client, {
480
+ address: account.address,
481
+ signature,
482
+ })
483
+ return { message, signature: signature_erc8010 }
484
+ }
485
+
486
+ {
487
+ const message = await Siwe.buildMessage(
488
+ client,
489
+ signInWithEthereum,
490
+ {
491
+ address: account.address,
492
+ },
493
+ )
494
+ const signature = await Account.sign(account, {
495
+ payload: PersonalMessage.getSignPayload(Hex.fromString(message)),
496
+ role: 'admin',
497
+ })
498
+ const signature_erc8010 = await Erc8010.wrap(client, {
499
+ address: account.address,
500
+ signature,
501
+ })
502
+ return {
503
+ message,
504
+ signature: signature_erc8010,
505
+ }
506
+ }
507
+ })()
508
+
509
+ return {
510
+ accounts: [
511
+ {
512
+ ...account,
513
+ signInWithEthereum: signInWithEthereum_response,
514
+ },
515
+ ],
516
+ }
517
+ },
518
+
519
+ async prepareCalls(parameters) {
520
+ const { account, calls, internal, merchantUrl } = parameters
521
+ const { client } = internal
522
+
523
+ // Try and extract an authorized key to sign the calls with.
524
+ const key =
525
+ parameters.key ??
526
+ (await Mode.getAuthorizedExecuteKey({
527
+ account,
528
+ calls,
529
+ }))
530
+ if (!key) throw new Error('cannot find authorized key to sign with.')
531
+
532
+ const [tokens, feeToken] = await Promise.all([
533
+ Tokens.getTokens(client),
534
+ Tokens.resolveFeeToken(client, {
535
+ addressOrSymbol: parameters.feeToken,
536
+ store: internal.store,
537
+ }),
538
+ ])
539
+
540
+ const requiredFunds = RequiredFunds.toRelay(
541
+ parameters.requiredFunds ?? [],
542
+ {
543
+ tokens,
544
+ },
545
+ )
546
+
547
+ const { capabilities, context, digest, typedData } =
548
+ await RelayActions.prepareCalls(client, {
549
+ account,
550
+ calls,
551
+ feeToken: feeToken?.address,
552
+ key,
553
+ merchantUrl,
554
+ requiredFunds: multichain ? requiredFunds : undefined,
555
+ })
556
+
557
+ const quotes = context.quote?.quotes ?? []
558
+ const outputQuote = quotes[quotes.length - 1]
559
+
560
+ return {
561
+ account,
562
+ capabilities: {
563
+ ...capabilities,
564
+ quote: context.quote as any,
565
+ },
566
+ chainId: client.chain.id,
567
+ context: {
568
+ ...context,
569
+ account,
570
+ calls,
571
+ nonce: outputQuote?.intent.nonce,
572
+ },
573
+ digest,
574
+ key,
575
+ typedData,
576
+ }
577
+ },
578
+
579
+ async prepareUpgradeAccount(parameters) {
580
+ const { address, email, label, internal, permissions } = parameters
581
+ const { client } = internal
582
+
583
+ const [tokens, feeToken] = await Promise.all([
584
+ Tokens.getTokens(client),
585
+ Tokens.resolveFeeToken(client, {
586
+ store: internal.store,
587
+ }),
588
+ ])
589
+
590
+ const adminKey = !mock
591
+ ? await Key.createWebAuthnP256({
592
+ createFn: webAuthn?.createFn,
593
+ label:
594
+ label || `${address.slice(0, 8)}\u2026${address.slice(-6)}`,
595
+ rpId: keystoreHost,
596
+ userId: Bytes.from(address),
597
+ })
598
+ : Key.createHeadlessWebAuthnP256()
599
+ const sessionKey = await PermissionsRequest.toKey(permissions, {
600
+ chainId: client.chain.id,
601
+ feeTokens: tokens,
602
+ })
603
+
604
+ const { context, digests } = await RelayActions.prepareUpgradeAccount(
605
+ client,
606
+ {
607
+ address,
608
+ authorizeKeys: [adminKey, ...(sessionKey ? [sessionKey] : [])],
609
+ feeToken: feeToken?.address,
610
+ },
611
+ )
612
+
613
+ if (email) email_internal = label
614
+
615
+ return {
616
+ context,
617
+ digests,
618
+ }
619
+ },
620
+
621
+ async revokeAdmin(parameters) {
622
+ const { account, id, internal } = parameters
623
+ const { client } = internal
624
+
625
+ const key = account.keys?.find((key) => key.id === id)
626
+ if (!key) return
627
+
628
+ // Cannot revoke the only WebAuthn key left
629
+ if (
630
+ key.type === 'webauthn-p256' &&
631
+ account.keys?.filter((key) => key.type === 'webauthn-p256').length ===
632
+ 1
633
+ )
634
+ throw new Error('revoke the only WebAuthn key left.')
635
+
636
+ try {
637
+ const feeToken = await Tokens.resolveFeeToken(client, {
638
+ addressOrSymbol: parameters.feeToken,
639
+ store: internal.store,
640
+ })
641
+ const { id } = await RelayActions.sendCalls(client, {
642
+ account,
643
+ feeToken: feeToken?.address,
644
+ revokeKeys: [key],
645
+ webAuthn,
646
+ })
647
+ await waitForCallsStatus(client, {
648
+ id,
649
+ })
650
+ } catch (e) {
651
+ const error = e as RelayActions.sendCalls.ErrorType
652
+ if (
653
+ error.name === 'Rpc.ExecutionError' &&
654
+ error.abiError?.name === 'KeyDoesNotExist'
655
+ )
656
+ return
657
+ throw e
658
+ }
659
+ },
660
+
661
+ async revokePermissions(parameters) {
662
+ const { account, id, internal } = parameters
663
+ const { client } = internal
664
+
665
+ const key = account.keys?.find((key) => key.id === id)
666
+ if (!key) return
667
+
668
+ // We shouldn't be able to revoke the admin keys.
669
+ if (key.role === 'admin') throw new Error('cannot revoke admins.')
670
+
671
+ try {
672
+ const feeToken = await Tokens.resolveFeeToken(client, {
673
+ addressOrSymbol: parameters.feeToken,
674
+ store: internal.store,
675
+ })
676
+ const { id } = await RelayActions.sendCalls(client, {
677
+ account,
678
+ feeToken: feeToken?.address,
679
+ revokeKeys: [key],
680
+ webAuthn,
681
+ })
682
+ await waitForCallsStatus(client, {
683
+ id,
684
+ })
685
+ } catch (e) {
686
+ const error = e as RelayActions.sendCalls.ErrorType
687
+ if (
688
+ error.name === 'Rpc.ExecutionError' &&
689
+ error.abiError?.name === 'KeyDoesNotExist'
690
+ )
691
+ return
692
+ throw e
693
+ }
694
+ },
695
+
696
+ async sendCalls(parameters) {
697
+ const { account, asTxHash, calls, internal, merchantUrl } = parameters
698
+ const { client } = internal
699
+
700
+ // Try and extract an authorized key to sign the calls with.
701
+ const key = await Mode.getAuthorizedExecuteKey({
702
+ account,
703
+ calls,
704
+ permissionsId: parameters.permissionsId,
705
+ })
706
+
707
+ // Resolve fee token to use.
708
+ const [tokens, feeToken] = await Promise.all([
709
+ Tokens.getTokens(client),
710
+ Tokens.resolveFeeToken(client, {
711
+ addressOrSymbol: parameters.feeToken,
712
+ store: internal.store,
713
+ }),
714
+ ])
715
+
716
+ const requiredFunds = RequiredFunds.toRelay(
717
+ parameters.requiredFunds ?? [],
718
+ {
719
+ tokens,
720
+ },
721
+ )
722
+
723
+ // Execute the calls (with the key if provided, otherwise it will
724
+ // fall back to an admin key).
725
+ const result = await RelayActions.sendCalls(client, {
726
+ account,
727
+ calls,
728
+ feeToken: feeToken?.address,
729
+ key,
730
+ merchantUrl,
731
+ requiredFunds: multichain ? requiredFunds : undefined,
732
+ webAuthn,
733
+ })
734
+
735
+ if (asTxHash) {
736
+ const { id, receipts, status } = await waitForCallsStatus(client, {
737
+ id: result.id,
738
+ pollingInterval: 500,
739
+ })
740
+ if (!receipts?.[0]) {
741
+ if (status === 'success')
742
+ throw new Provider.UnknownBundleIdError({
743
+ message: 'Call bundle with id: ' + id + ' not found.',
744
+ })
745
+ throw new RpcResponse.TransactionRejectedError({
746
+ message: 'Transaction failed under call bundle id: ' + id + '.',
747
+ })
748
+ }
749
+ return {
750
+ id: receipts[0].transactionHash,
751
+ }
752
+ }
753
+
754
+ return result
755
+ },
756
+
757
+ async sendPreparedCalls(parameters) {
758
+ const { context, key, internal, signature } = parameters
759
+ const { client } = internal
760
+
761
+ const { id } = await RelayActions.sendPreparedCalls(client, {
762
+ context: context as never,
763
+ key,
764
+ signature,
765
+ })
766
+
767
+ return id
768
+ },
769
+
770
+ async signPersonalMessage(parameters) {
771
+ const { account, data, internal } = parameters
772
+ const { client } = internal
773
+
774
+ // Only admin keys can sign personal messages.
775
+ const key = account.keys?.find(
776
+ (key) => key.role === 'admin' && key.privateKey,
777
+ )
778
+ if (!key) throw new Error('cannot find admin key to sign with.')
779
+
780
+ const signature = await Account.sign(account, {
781
+ key,
782
+ payload: PersonalMessage.getSignPayload(data),
783
+ webAuthn,
784
+ })
785
+
786
+ return Erc8010.wrap(client, { address: account.address, signature })
787
+ },
788
+
789
+ async signTypedData(parameters) {
790
+ const { account, internal } = parameters
791
+ const { client } = internal
792
+
793
+ // Only admin keys can sign typed data.
794
+ const key = account.keys?.find(
795
+ (key) => key.role === 'admin' && key.privateKey,
796
+ )
797
+ if (!key) throw new Error('cannot find admin key to sign with.')
798
+
799
+ const data = Json.parse(parameters.data)
800
+ const isOrchestrator = data.domain?.name === 'Orchestrator'
801
+ const signature = await Account.sign(account, {
802
+ key,
803
+ payload: TypedData.getSignPayload(data),
804
+ // If the domain is the Orchestrator, we don't need to replay-safe sign.
805
+ replaySafe: !isOrchestrator,
806
+ webAuthn,
807
+ })
808
+
809
+ return isOrchestrator
810
+ ? signature
811
+ : Erc8010.wrap(client, { address: account.address, signature })
812
+ },
813
+
814
+ async upgradeAccount(parameters) {
815
+ const { account, context, internal, signatures } = parameters
816
+ const { client } = internal
817
+
818
+ await RelayActions.upgradeAccount(client, {
819
+ context: context as any,
820
+ signatures,
821
+ })
822
+
823
+ if (email_internal)
824
+ await RelayActions.setEmail(client, {
825
+ email: email_internal,
826
+ walletAddress: account.address,
827
+ })
828
+
829
+ return { account }
830
+ },
831
+
832
+ async verifyEmail(parameters) {
833
+ const { account, chainId, email, token, internal, walletAddress } =
834
+ parameters
835
+ const { client } = internal
836
+
837
+ // Only allow admin keys can sign message.
838
+ const key = account.keys?.find(
839
+ (key) => key.role === 'admin' && key.privateKey,
840
+ )
841
+ if (!key) throw new Error('cannot find admin key to sign with.')
842
+
843
+ const signature = await Account.sign(account, {
844
+ key,
845
+ payload: Hash.keccak256(Hex.fromString(`${email}${token}`)),
846
+ webAuthn,
847
+ })
848
+
849
+ return await RelayActions.verifyEmail(client, {
850
+ chainId,
851
+ email,
852
+ signature,
853
+ token,
854
+ walletAddress,
855
+ })
856
+ },
857
+ },
858
+ config: parameters,
859
+ name: 'rpc',
860
+ })
861
+ }
862
+
863
+ export declare namespace relay {
864
+ type Parameters = {
865
+ /**
866
+ * Keystore host (WebAuthn relying party).
867
+ * @default 'self'
868
+ */
869
+ keystoreHost?: 'self' | (string & {}) | undefined
870
+ /**
871
+ * Mock mode. Testing purposes only.
872
+ * @default false
873
+ * @internal @deprecated
874
+ */
875
+ mock?: boolean | undefined
876
+ /**
877
+ * Whether to support multichain.
878
+ * @default true
879
+ */
880
+ multichain?: boolean | undefined
881
+ /**
882
+ * WebAuthn configuration.
883
+ */
884
+ webAuthn?:
885
+ | {
886
+ createFn?:
887
+ | WebAuthnP256.createCredential.Options['createFn']
888
+ | undefined
889
+ getFn?: WebAuthnP256.sign.Options['getFn'] | undefined
890
+ }
891
+ | undefined
892
+ }
893
+ }