@startale/app-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +116 -0
  3. package/dist/app-sdk.js +36226 -0
  4. package/dist/app-sdk.js.map +1 -0
  5. package/dist/app-sdk.min.js +15 -0
  6. package/dist/app-sdk.min.js.map +1 -0
  7. package/dist/browser-entry.d.ts +15 -0
  8. package/dist/browser-entry.d.ts.map +1 -0
  9. package/dist/browser-entry.js +19 -0
  10. package/dist/browser-entry.js.map +1 -0
  11. package/dist/core/communicator/Communicator.d.ts +47 -0
  12. package/dist/core/communicator/Communicator.d.ts.map +1 -0
  13. package/dist/core/communicator/Communicator.js +107 -0
  14. package/dist/core/communicator/Communicator.js.map +1 -0
  15. package/dist/core/constants.d.ts +5 -0
  16. package/dist/core/constants.d.ts.map +1 -0
  17. package/dist/core/constants.js +6 -0
  18. package/dist/core/constants.js.map +1 -0
  19. package/dist/core/error/constants.d.ts +96 -0
  20. package/dist/core/error/constants.d.ts.map +1 -0
  21. package/dist/core/error/constants.js +94 -0
  22. package/dist/core/error/constants.js.map +1 -0
  23. package/dist/core/error/errors.d.ts +74 -0
  24. package/dist/core/error/errors.d.ts.map +1 -0
  25. package/dist/core/error/errors.js +138 -0
  26. package/dist/core/error/errors.js.map +1 -0
  27. package/dist/core/error/serialize.d.ts +13 -0
  28. package/dist/core/error/serialize.d.ts.map +1 -0
  29. package/dist/core/error/serialize.js +43 -0
  30. package/dist/core/error/serialize.js.map +1 -0
  31. package/dist/core/error/utils.d.ts +31 -0
  32. package/dist/core/error/utils.d.ts.map +1 -0
  33. package/dist/core/error/utils.js +109 -0
  34. package/dist/core/error/utils.js.map +1 -0
  35. package/dist/core/message/ConfigMessage.d.ts +6 -0
  36. package/dist/core/message/ConfigMessage.d.ts.map +1 -0
  37. package/dist/core/message/ConfigMessage.js +2 -0
  38. package/dist/core/message/ConfigMessage.js.map +1 -0
  39. package/dist/core/message/Message.d.ts +8 -0
  40. package/dist/core/message/Message.d.ts.map +1 -0
  41. package/dist/core/message/Message.js +2 -0
  42. package/dist/core/message/Message.js.map +1 -0
  43. package/dist/core/message/RPCMessage.d.ts +31 -0
  44. package/dist/core/message/RPCMessage.d.ts.map +1 -0
  45. package/dist/core/message/RPCMessage.js +2 -0
  46. package/dist/core/message/RPCMessage.js.map +1 -0
  47. package/dist/core/message/RPCRequest.d.ts +6 -0
  48. package/dist/core/message/RPCRequest.d.ts.map +1 -0
  49. package/dist/core/message/RPCRequest.js +2 -0
  50. package/dist/core/message/RPCRequest.js.map +1 -0
  51. package/dist/core/message/RPCResponse.d.ts +23 -0
  52. package/dist/core/message/RPCResponse.d.ts.map +1 -0
  53. package/dist/core/message/RPCResponse.js +2 -0
  54. package/dist/core/message/RPCResponse.js.map +1 -0
  55. package/dist/core/provider/interface.d.ts +94 -0
  56. package/dist/core/provider/interface.d.ts.map +1 -0
  57. package/dist/core/provider/interface.js +4 -0
  58. package/dist/core/provider/interface.js.map +1 -0
  59. package/dist/core/rpc/coinbase_fetchSpendPermissions.d.ts +50 -0
  60. package/dist/core/rpc/coinbase_fetchSpendPermissions.d.ts.map +1 -0
  61. package/dist/core/rpc/coinbase_fetchSpendPermissions.js +2 -0
  62. package/dist/core/rpc/coinbase_fetchSpendPermissions.js.map +1 -0
  63. package/dist/core/rpc/wallet_addSubAccount.d.ts +37 -0
  64. package/dist/core/rpc/wallet_addSubAccount.d.ts.map +1 -0
  65. package/dist/core/rpc/wallet_addSubAccount.js +2 -0
  66. package/dist/core/rpc/wallet_addSubAccount.js.map +1 -0
  67. package/dist/core/rpc/wallet_connect.d.ts +64 -0
  68. package/dist/core/rpc/wallet_connect.d.ts.map +1 -0
  69. package/dist/core/rpc/wallet_connect.js +2 -0
  70. package/dist/core/rpc/wallet_connect.js.map +1 -0
  71. package/dist/core/rpc/wallet_getSubAccount.d.ts +14 -0
  72. package/dist/core/rpc/wallet_getSubAccount.d.ts.map +1 -0
  73. package/dist/core/rpc/wallet_getSubAccount.js +2 -0
  74. package/dist/core/rpc/wallet_getSubAccount.js.map +1 -0
  75. package/dist/core/rpc/wallet_prepareCalls.d.ts +28 -0
  76. package/dist/core/rpc/wallet_prepareCalls.d.ts.map +1 -0
  77. package/dist/core/rpc/wallet_prepareCalls.js +2 -0
  78. package/dist/core/rpc/wallet_prepareCalls.js.map +1 -0
  79. package/dist/core/rpc/wallet_sendPreparedCalls.d.ts +47 -0
  80. package/dist/core/rpc/wallet_sendPreparedCalls.d.ts.map +1 -0
  81. package/dist/core/rpc/wallet_sendPreparedCalls.js +2 -0
  82. package/dist/core/rpc/wallet_sendPreparedCalls.js.map +1 -0
  83. package/dist/core/telemetry/events/communicator.d.ts +4 -0
  84. package/dist/core/telemetry/events/communicator.d.ts.map +1 -0
  85. package/dist/core/telemetry/events/communicator.js +20 -0
  86. package/dist/core/telemetry/events/communicator.js.map +1 -0
  87. package/dist/core/telemetry/events/dialog.d.ts +15 -0
  88. package/dist/core/telemetry/events/dialog.d.ts.map +1 -0
  89. package/dist/core/telemetry/events/dialog.js +24 -0
  90. package/dist/core/telemetry/events/dialog.js.map +1 -0
  91. package/dist/core/telemetry/events/payment.d.ts +31 -0
  92. package/dist/core/telemetry/events/payment.d.ts.map +1 -0
  93. package/dist/core/telemetry/events/payment.js +68 -0
  94. package/dist/core/telemetry/events/payment.js.map +1 -0
  95. package/dist/core/telemetry/events/provider.d.ts +14 -0
  96. package/dist/core/telemetry/events/provider.d.ts.map +1 -0
  97. package/dist/core/telemetry/events/provider.js +30 -0
  98. package/dist/core/telemetry/events/provider.js.map +1 -0
  99. package/dist/core/telemetry/events/scw-signer.d.ts +27 -0
  100. package/dist/core/telemetry/events/scw-signer.d.ts.map +1 -0
  101. package/dist/core/telemetry/events/scw-signer.js +65 -0
  102. package/dist/core/telemetry/events/scw-signer.js.map +1 -0
  103. package/dist/core/telemetry/events/scw-sub-account.d.ts +40 -0
  104. package/dist/core/telemetry/events/scw-sub-account.d.ts.map +1 -0
  105. package/dist/core/telemetry/events/scw-sub-account.js +96 -0
  106. package/dist/core/telemetry/events/scw-sub-account.js.map +1 -0
  107. package/dist/core/telemetry/events/spend-permission.d.ts +6 -0
  108. package/dist/core/telemetry/events/spend-permission.d.ts.map +1 -0
  109. package/dist/core/telemetry/events/spend-permission.js +21 -0
  110. package/dist/core/telemetry/events/spend-permission.js.map +1 -0
  111. package/dist/core/telemetry/initCCA.d.ts +2 -0
  112. package/dist/core/telemetry/initCCA.d.ts.map +1 -0
  113. package/dist/core/telemetry/initCCA.js +43 -0
  114. package/dist/core/telemetry/initCCA.js.map +1 -0
  115. package/dist/core/telemetry/logEvent.d.ts +72 -0
  116. package/dist/core/telemetry/logEvent.d.ts.map +1 -0
  117. package/dist/core/telemetry/logEvent.js +62 -0
  118. package/dist/core/telemetry/logEvent.js.map +1 -0
  119. package/dist/core/telemetry/telemetry-content.d.ts +2 -0
  120. package/dist/core/telemetry/telemetry-content.d.ts.map +1 -0
  121. package/dist/core/telemetry/telemetry-content.js +5526 -0
  122. package/dist/core/telemetry/telemetry-content.js.map +1 -0
  123. package/dist/core/telemetry/utils.d.ts +2 -0
  124. package/dist/core/telemetry/utils.d.ts.map +1 -0
  125. package/dist/core/telemetry/utils.js +7 -0
  126. package/dist/core/telemetry/utils.js.map +1 -0
  127. package/dist/core/type/index.d.ts +21 -0
  128. package/dist/core/type/index.d.ts.map +1 -0
  129. package/dist/core/type/index.js +10 -0
  130. package/dist/core/type/index.js.map +1 -0
  131. package/dist/core/type/util.d.ts +28 -0
  132. package/dist/core/type/util.d.ts.map +1 -0
  133. package/dist/core/type/util.js +158 -0
  134. package/dist/core/type/util.js.map +1 -0
  135. package/dist/core/username/getDisplayableUsername.d.ts +3 -0
  136. package/dist/core/username/getDisplayableUsername.d.ts.map +1 -0
  137. package/dist/core/username/getDisplayableUsername.js +7 -0
  138. package/dist/core/username/getDisplayableUsername.js.map +1 -0
  139. package/dist/index.d.ts +6 -0
  140. package/dist/index.d.ts.map +1 -0
  141. package/dist/index.js +5 -0
  142. package/dist/index.js.map +1 -0
  143. package/dist/interface/builder/core/BaseAccountProvider.d.ts +11 -0
  144. package/dist/interface/builder/core/BaseAccountProvider.d.ts.map +1 -0
  145. package/dist/interface/builder/core/BaseAccountProvider.js +141 -0
  146. package/dist/interface/builder/core/BaseAccountProvider.js.map +1 -0
  147. package/dist/interface/builder/core/createBaseAccountSDK.d.ts +27 -0
  148. package/dist/interface/builder/core/createBaseAccountSDK.d.ts.map +1 -0
  149. package/dist/interface/builder/core/createBaseAccountSDK.js +149 -0
  150. package/dist/interface/builder/core/createBaseAccountSDK.js.map +1 -0
  151. package/dist/interface/builder/core/getInjectedProvider.d.ts +13 -0
  152. package/dist/interface/builder/core/getInjectedProvider.d.ts.map +1 -0
  153. package/dist/interface/builder/core/getInjectedProvider.js +10 -0
  154. package/dist/interface/builder/core/getInjectedProvider.js.map +1 -0
  155. package/dist/interface/payment/base.d.ts +32 -0
  156. package/dist/interface/payment/base.d.ts.map +1 -0
  157. package/dist/interface/payment/base.js +16 -0
  158. package/dist/interface/payment/base.js.map +1 -0
  159. package/dist/interface/payment/constants.d.ts +56 -0
  160. package/dist/interface/payment/constants.d.ts.map +1 -0
  161. package/dist/interface/payment/constants.js +45 -0
  162. package/dist/interface/payment/constants.js.map +1 -0
  163. package/dist/interface/payment/getPaymentStatus.d.ts +28 -0
  164. package/dist/interface/payment/getPaymentStatus.d.ts.map +1 -0
  165. package/dist/interface/payment/getPaymentStatus.js +243 -0
  166. package/dist/interface/payment/getPaymentStatus.js.map +1 -0
  167. package/dist/interface/payment/index.d.ts +9 -0
  168. package/dist/interface/payment/index.d.ts.map +1 -0
  169. package/dist/interface/payment/index.js +9 -0
  170. package/dist/interface/payment/index.js.map +1 -0
  171. package/dist/interface/payment/pay.d.ts +29 -0
  172. package/dist/interface/payment/pay.d.ts.map +1 -0
  173. package/dist/interface/payment/pay.js +90 -0
  174. package/dist/interface/payment/pay.js.map +1 -0
  175. package/dist/interface/payment/types.d.ts +123 -0
  176. package/dist/interface/payment/types.d.ts.map +1 -0
  177. package/dist/interface/payment/types.js +5 -0
  178. package/dist/interface/payment/types.js.map +1 -0
  179. package/dist/interface/payment/utils/sdkManager.d.ts +61 -0
  180. package/dist/interface/payment/utils/sdkManager.d.ts.map +1 -0
  181. package/dist/interface/payment/utils/sdkManager.js +84 -0
  182. package/dist/interface/payment/utils/sdkManager.js.map +1 -0
  183. package/dist/interface/payment/utils/translatePayment.d.ts +45 -0
  184. package/dist/interface/payment/utils/translatePayment.d.ts.map +1 -0
  185. package/dist/interface/payment/utils/translatePayment.js +70 -0
  186. package/dist/interface/payment/utils/translatePayment.js.map +1 -0
  187. package/dist/interface/payment/utils/validation.d.ts +16 -0
  188. package/dist/interface/payment/utils/validation.d.ts.map +1 -0
  189. package/dist/interface/payment/utils/validation.js +47 -0
  190. package/dist/interface/payment/utils/validation.js.map +1 -0
  191. package/dist/interface/public-utilities/spend-permission/index.d.ts +8 -0
  192. package/dist/interface/public-utilities/spend-permission/index.d.ts.map +1 -0
  193. package/dist/interface/public-utilities/spend-permission/index.js +8 -0
  194. package/dist/interface/public-utilities/spend-permission/index.js.map +1 -0
  195. package/dist/interface/public-utilities/spend-permission/methods/fetchPermissions.d.ts +14 -0
  196. package/dist/interface/public-utilities/spend-permission/methods/fetchPermissions.d.ts.map +1 -0
  197. package/dist/interface/public-utilities/spend-permission/methods/fetchPermissions.js +52 -0
  198. package/dist/interface/public-utilities/spend-permission/methods/fetchPermissions.js.map +1 -0
  199. package/dist/interface/public-utilities/spend-permission/methods/getHash.d.ts +9 -0
  200. package/dist/interface/public-utilities/spend-permission/methods/getHash.d.ts.map +1 -0
  201. package/dist/interface/public-utilities/spend-permission/methods/getHash.js +54 -0
  202. package/dist/interface/public-utilities/spend-permission/methods/getHash.js.map +1 -0
  203. package/dist/interface/public-utilities/spend-permission/methods/getPermissionStatus.d.ts +8 -0
  204. package/dist/interface/public-utilities/spend-permission/methods/getPermissionStatus.d.ts.map +1 -0
  205. package/dist/interface/public-utilities/spend-permission/methods/getPermissionStatus.js +85 -0
  206. package/dist/interface/public-utilities/spend-permission/methods/getPermissionStatus.js.map +1 -0
  207. package/dist/interface/public-utilities/spend-permission/methods/prepareRevokeCallData.d.ts +10 -0
  208. package/dist/interface/public-utilities/spend-permission/methods/prepareRevokeCallData.d.ts.map +1 -0
  209. package/dist/interface/public-utilities/spend-permission/methods/prepareRevokeCallData.js +51 -0
  210. package/dist/interface/public-utilities/spend-permission/methods/prepareRevokeCallData.js.map +1 -0
  211. package/dist/interface/public-utilities/spend-permission/methods/prepareSpendCallData.d.ts +11 -0
  212. package/dist/interface/public-utilities/spend-permission/methods/prepareSpendCallData.d.ts.map +1 -0
  213. package/dist/interface/public-utilities/spend-permission/methods/prepareSpendCallData.js +104 -0
  214. package/dist/interface/public-utilities/spend-permission/methods/prepareSpendCallData.js.map +1 -0
  215. package/dist/interface/public-utilities/spend-permission/methods/requestRevoke.d.ts +11 -0
  216. package/dist/interface/public-utilities/spend-permission/methods/requestRevoke.d.ts.map +1 -0
  217. package/dist/interface/public-utilities/spend-permission/methods/requestRevoke.js +64 -0
  218. package/dist/interface/public-utilities/spend-permission/methods/requestRevoke.js.map +1 -0
  219. package/dist/interface/public-utilities/spend-permission/methods/requestSpendPermission.d.ts +20 -0
  220. package/dist/interface/public-utilities/spend-permission/methods/requestSpendPermission.d.ts.map +1 -0
  221. package/dist/interface/public-utilities/spend-permission/methods/requestSpendPermission.js +67 -0
  222. package/dist/interface/public-utilities/spend-permission/methods/requestSpendPermission.js.map +1 -0
  223. package/dist/interface/public-utilities/spend-permission/utils.d.ts +81 -0
  224. package/dist/interface/public-utilities/spend-permission/utils.d.ts.map +1 -0
  225. package/dist/interface/public-utilities/spend-permission/utils.js +130 -0
  226. package/dist/interface/public-utilities/spend-permission/utils.js.map +1 -0
  227. package/dist/interface/public-utilities/spend-permission/withTelemetry.d.ts +2 -0
  228. package/dist/interface/public-utilities/spend-permission/withTelemetry.d.ts.map +1 -0
  229. package/dist/interface/public-utilities/spend-permission/withTelemetry.js +30 -0
  230. package/dist/interface/public-utilities/spend-permission/withTelemetry.js.map +1 -0
  231. package/dist/kms/crypto-key/index.d.ts +18 -0
  232. package/dist/kms/crypto-key/index.d.ts.map +1 -0
  233. package/dist/kms/crypto-key/index.js +97 -0
  234. package/dist/kms/crypto-key/index.js.map +1 -0
  235. package/dist/kms/crypto-key/storage.d.ts +7 -0
  236. package/dist/kms/crypto-key/storage.d.ts.map +1 -0
  237. package/dist/kms/crypto-key/storage.js +20 -0
  238. package/dist/kms/crypto-key/storage.js.map +1 -0
  239. package/dist/sign/app-sdk/SCWKeyManager.d.ts +15 -0
  240. package/dist/sign/app-sdk/SCWKeyManager.d.ts.map +1 -0
  241. package/dist/sign/app-sdk/SCWKeyManager.js +82 -0
  242. package/dist/sign/app-sdk/SCWKeyManager.js.map +1 -0
  243. package/dist/sign/app-sdk/Signer.d.ts +38 -0
  244. package/dist/sign/app-sdk/Signer.d.ts.map +1 -0
  245. package/dist/sign/app-sdk/Signer.js +659 -0
  246. package/dist/sign/app-sdk/Signer.js.map +1 -0
  247. package/dist/sign/app-sdk/utils/constants.d.ts +1945 -0
  248. package/dist/sign/app-sdk/utils/constants.d.ts.map +1 -0
  249. package/dist/sign/app-sdk/utils/constants.js +1321 -0
  250. package/dist/sign/app-sdk/utils/constants.js.map +1 -0
  251. package/dist/sign/app-sdk/utils/createSmartAccount.d.ts +63 -0
  252. package/dist/sign/app-sdk/utils/createSmartAccount.d.ts.map +1 -0
  253. package/dist/sign/app-sdk/utils/createSmartAccount.js +291 -0
  254. package/dist/sign/app-sdk/utils/createSmartAccount.js.map +1 -0
  255. package/dist/sign/app-sdk/utils/createSubAccountSigner.d.ts +23 -0
  256. package/dist/sign/app-sdk/utils/createSubAccountSigner.d.ts.map +1 -0
  257. package/dist/sign/app-sdk/utils/createSubAccountSigner.js +233 -0
  258. package/dist/sign/app-sdk/utils/createSubAccountSigner.js.map +1 -0
  259. package/dist/sign/app-sdk/utils/findOwnerIndex.d.ts +32 -0
  260. package/dist/sign/app-sdk/utils/findOwnerIndex.d.ts.map +1 -0
  261. package/dist/sign/app-sdk/utils/findOwnerIndex.js +56 -0
  262. package/dist/sign/app-sdk/utils/findOwnerIndex.js.map +1 -0
  263. package/dist/sign/app-sdk/utils/handleAddSubAccountOwner.d.ts +8 -0
  264. package/dist/sign/app-sdk/utils/handleAddSubAccountOwner.d.ts.map +1 -0
  265. package/dist/sign/app-sdk/utils/handleAddSubAccountOwner.js +78 -0
  266. package/dist/sign/app-sdk/utils/handleAddSubAccountOwner.js.map +1 -0
  267. package/dist/sign/app-sdk/utils/handleInsufficientBalance.d.ts +18 -0
  268. package/dist/sign/app-sdk/utils/handleInsufficientBalance.d.ts.map +1 -0
  269. package/dist/sign/app-sdk/utils/handleInsufficientBalance.js +27 -0
  270. package/dist/sign/app-sdk/utils/handleInsufficientBalance.js.map +1 -0
  271. package/dist/sign/app-sdk/utils/presentAddOwnerDialog.d.ts +2 -0
  272. package/dist/sign/app-sdk/utils/presentAddOwnerDialog.d.ts.map +1 -0
  273. package/dist/sign/app-sdk/utils/presentAddOwnerDialog.js +46 -0
  274. package/dist/sign/app-sdk/utils/presentAddOwnerDialog.js.map +1 -0
  275. package/dist/sign/app-sdk/utils/routeThroughGlobalAccount.d.ts +33 -0
  276. package/dist/sign/app-sdk/utils/routeThroughGlobalAccount.d.ts.map +1 -0
  277. package/dist/sign/app-sdk/utils/routeThroughGlobalAccount.js +76 -0
  278. package/dist/sign/app-sdk/utils/routeThroughGlobalAccount.js.map +1 -0
  279. package/dist/sign/app-sdk/utils.d.ts +220 -0
  280. package/dist/sign/app-sdk/utils.d.ts.map +1 -0
  281. package/dist/sign/app-sdk/utils.js +439 -0
  282. package/dist/sign/app-sdk/utils.js.map +1 -0
  283. package/dist/store/chain-clients/store.d.ts +10 -0
  284. package/dist/store/chain-clients/store.d.ts.map +1 -0
  285. package/dist/store/chain-clients/store.js +3 -0
  286. package/dist/store/chain-clients/store.js.map +1 -0
  287. package/dist/store/chain-clients/utils.d.ts +13 -0
  288. package/dist/store/chain-clients/utils.d.ts.map +1 -0
  289. package/dist/store/chain-clients/utils.js +77 -0
  290. package/dist/store/chain-clients/utils.js.map +1 -0
  291. package/dist/store/correlation-ids/store.d.ts +7 -0
  292. package/dist/store/correlation-ids/store.d.ts.map +1 -0
  293. package/dist/store/correlation-ids/store.js +32 -0
  294. package/dist/store/correlation-ids/store.js.map +1 -0
  295. package/dist/store/store.d.ts +186 -0
  296. package/dist/store/store.d.ts.map +1 -0
  297. package/dist/store/store.js +167 -0
  298. package/dist/store/store.js.map +1 -0
  299. package/dist/ui/Dialog/Dialog-css.d.ts +3 -0
  300. package/dist/ui/Dialog/Dialog-css.d.ts.map +1 -0
  301. package/dist/ui/Dialog/Dialog-css.js +2 -0
  302. package/dist/ui/Dialog/Dialog-css.js.map +1 -0
  303. package/dist/ui/Dialog/Dialog.d.ts +28 -0
  304. package/dist/ui/Dialog/Dialog.d.ts.map +1 -0
  305. package/dist/ui/Dialog/Dialog.js +150 -0
  306. package/dist/ui/Dialog/Dialog.js.map +1 -0
  307. package/dist/ui/Dialog/index.d.ts +3 -0
  308. package/dist/ui/Dialog/index.d.ts.map +1 -0
  309. package/dist/ui/Dialog/index.js +15 -0
  310. package/dist/ui/Dialog/index.js.map +1 -0
  311. package/dist/ui/assets/BaseLogo.d.ts +4 -0
  312. package/dist/ui/assets/BaseLogo.d.ts.map +1 -0
  313. package/dist/ui/assets/BaseLogo.js +7 -0
  314. package/dist/ui/assets/BaseLogo.js.map +1 -0
  315. package/dist/ui/assets/BasePayLogo.d.ts +3 -0
  316. package/dist/ui/assets/BasePayLogo.d.ts.map +1 -0
  317. package/dist/ui/assets/BasePayLogo.js +4 -0
  318. package/dist/ui/assets/BasePayLogo.js.map +1 -0
  319. package/dist/ui/assets/colors.d.ts +18 -0
  320. package/dist/ui/assets/colors.d.ts.map +1 -0
  321. package/dist/ui/assets/colors.js +19 -0
  322. package/dist/ui/assets/colors.js.map +1 -0
  323. package/dist/ui/assets/fontFaceCSS.d.ts +2 -0
  324. package/dist/ui/assets/fontFaceCSS.d.ts.map +1 -0
  325. package/dist/ui/assets/fontFaceCSS.js +11 -0
  326. package/dist/ui/assets/fontFaceCSS.js.map +1 -0
  327. package/dist/ui/assets/index.d.ts +6 -0
  328. package/dist/ui/assets/index.d.ts.map +1 -0
  329. package/dist/ui/assets/index.js +6 -0
  330. package/dist/ui/assets/index.js.map +1 -0
  331. package/dist/ui/assets/injectFontStyle.d.ts +2 -0
  332. package/dist/ui/assets/injectFontStyle.d.ts.map +1 -0
  333. package/dist/ui/assets/injectFontStyle.js +12 -0
  334. package/dist/ui/assets/injectFontStyle.js.map +1 -0
  335. package/dist/util/assertPresence.d.ts +3 -0
  336. package/dist/util/assertPresence.d.ts.map +1 -0
  337. package/dist/util/assertPresence.js +18 -0
  338. package/dist/util/assertPresence.js.map +1 -0
  339. package/dist/util/assertSubAccount.d.ts +3 -0
  340. package/dist/util/assertSubAccount.d.ts.map +1 -0
  341. package/dist/util/assertSubAccount.js +26 -0
  342. package/dist/util/assertSubAccount.js.map +1 -0
  343. package/dist/util/checkCrossOriginOpenerPolicy.d.ts +2 -0
  344. package/dist/util/checkCrossOriginOpenerPolicy.d.ts.map +1 -0
  345. package/dist/util/checkCrossOriginOpenerPolicy.js +56 -0
  346. package/dist/util/checkCrossOriginOpenerPolicy.js.map +1 -0
  347. package/dist/util/cipher.d.ts +12 -0
  348. package/dist/util/cipher.d.ts.map +1 -0
  349. package/dist/util/cipher.js +65 -0
  350. package/dist/util/cipher.js.map +1 -0
  351. package/dist/util/encoding.d.ts +20 -0
  352. package/dist/util/encoding.d.ts.map +1 -0
  353. package/dist/util/encoding.js +48 -0
  354. package/dist/util/encoding.js.map +1 -0
  355. package/dist/util/get.d.ts +2 -0
  356. package/dist/util/get.d.ts.map +1 -0
  357. package/dist/util/get.js +14 -0
  358. package/dist/util/get.js.map +1 -0
  359. package/dist/util/provider.d.ts +10 -0
  360. package/dist/util/provider.d.ts.map +1 -0
  361. package/dist/util/provider.js +56 -0
  362. package/dist/util/provider.js.map +1 -0
  363. package/dist/util/validatePreferences.d.ts +13 -0
  364. package/dist/util/validatePreferences.d.ts.map +1 -0
  365. package/dist/util/validatePreferences.js +30 -0
  366. package/dist/util/validatePreferences.js.map +1 -0
  367. package/dist/util/web.d.ts +3 -0
  368. package/dist/util/web.d.ts.map +1 -0
  369. package/dist/util/web.js +100 -0
  370. package/dist/util/web.js.map +1 -0
  371. package/dist/vendor-js/CCA/ca.d.ts +2 -0
  372. package/dist/vendor-js/CCA/ca.d.ts.map +1 -0
  373. package/dist/vendor-js/CCA/ca.js +4608 -0
  374. package/dist/vendor-js/CCA/ca.js.map +1 -0
  375. package/package.json +109 -0
@@ -0,0 +1,233 @@
1
+ import { isViemError, standardErrors, viemHttpErrorToProviderError, } from '../../../core/error/errors.js';
2
+ import { ensureHexString } from '../../../core/type/util.js';
3
+ import { assertArrayPresence, assertPresence } from '../../../util/assertPresence.js';
4
+ import { convertCredentialToJSON } from '../../../util/encoding.js';
5
+ import { get } from '../../../util/get.js';
6
+ import { hexToString, isHex, numberToHex, } from 'viem';
7
+ import { createWalletSendCallsRequest, injectRequestCapabilities, waitForCallsTransactionHash, } from '../utils.js';
8
+ import { createSmartAccount } from './createSmartAccount.js';
9
+ export async function createSubAccountSigner({ address, client, factory, factoryData, owner, ownerIndex, parentAddress, attribution, }) {
10
+ var _a;
11
+ const subAccount = {
12
+ address,
13
+ factory,
14
+ factoryData,
15
+ };
16
+ const chainId = (_a = client.chain) === null || _a === void 0 ? void 0 : _a.id;
17
+ if (!chainId) {
18
+ throw standardErrors.rpc.internal('chainId not found');
19
+ }
20
+ const account = await createSmartAccount({
21
+ owner,
22
+ ownerIndex: ownerIndex !== null && ownerIndex !== void 0 ? ownerIndex : 1,
23
+ address,
24
+ client,
25
+ factoryData,
26
+ });
27
+ const request = async (args) => {
28
+ var _a, _b, _c, _d, _e, _f;
29
+ try {
30
+ switch (args.method) {
31
+ case 'wallet_addSubAccount':
32
+ return subAccount;
33
+ case 'eth_accounts':
34
+ return [subAccount.address];
35
+ case 'eth_coinbase':
36
+ return subAccount.address;
37
+ case 'net_version':
38
+ return chainId.toString();
39
+ case 'eth_chainId':
40
+ return numberToHex(chainId);
41
+ case 'eth_sendTransaction': {
42
+ assertArrayPresence(args.params);
43
+ const rawParams = args.params[0];
44
+ assertPresence(rawParams.to, standardErrors.rpc.invalidParams('to is required'));
45
+ const params = {
46
+ to: rawParams.to,
47
+ data: ensureHexString((_a = rawParams.data) !== null && _a !== void 0 ? _a : '0x', true),
48
+ value: ensureHexString((_b = rawParams.value) !== null && _b !== void 0 ? _b : '0x', true),
49
+ from: (_c = rawParams.from) !== null && _c !== void 0 ? _c : subAccount.address,
50
+ };
51
+ // Transform into wallet_sendCalls request
52
+ const sendCallsRequest = createWalletSendCallsRequest({
53
+ calls: [params],
54
+ chainId,
55
+ from: params.from,
56
+ });
57
+ const response = (await request(sendCallsRequest));
58
+ return waitForCallsTransactionHash({
59
+ client,
60
+ id: response,
61
+ });
62
+ }
63
+ case 'wallet_sendCalls': {
64
+ assertArrayPresence(args.params);
65
+ // Get the client for the chain
66
+ const chainId = get(args.params[0], 'chainId');
67
+ if (!chainId) {
68
+ throw standardErrors.rpc.invalidParams('chainId is required');
69
+ }
70
+ if (!isHex(chainId)) {
71
+ throw standardErrors.rpc.invalidParams('chainId must be a hex encoded integer');
72
+ }
73
+ if (!args.params[0]) {
74
+ throw standardErrors.rpc.invalidParams('params are required');
75
+ }
76
+ if (!('calls' in args.params[0])) {
77
+ throw standardErrors.rpc.invalidParams('calls are required');
78
+ }
79
+ let prepareCallsRequest = {
80
+ method: 'wallet_prepareCalls',
81
+ params: [
82
+ {
83
+ version: '1.0',
84
+ calls: args.params[0].calls,
85
+ chainId: chainId,
86
+ from: subAccount.address,
87
+ capabilities: 'capabilities' in args.params[0]
88
+ ? args.params[0].capabilities
89
+ : {},
90
+ },
91
+ ],
92
+ };
93
+ if (parentAddress) {
94
+ prepareCallsRequest = injectRequestCapabilities(prepareCallsRequest, {
95
+ funding: [
96
+ {
97
+ type: 'spendPermission',
98
+ data: {
99
+ autoApply: true,
100
+ sources: [parentAddress],
101
+ preference: 'PREFER_DIRECT_BALANCE',
102
+ },
103
+ },
104
+ ],
105
+ });
106
+ }
107
+ let prepareCallsResponse = (await request(prepareCallsRequest));
108
+ const signResponse = await ((_e = (_d = owner).sign) === null || _e === void 0 ? void 0 : _e.call(_d, {
109
+ // Hash returned from wallet_prepareCalls is double hex encoded
110
+ hash: hexToString(prepareCallsResponse.signatureRequest.hash),
111
+ }));
112
+ let signatureData;
113
+ if (!signResponse) {
114
+ throw standardErrors.rpc.internal('signature not found');
115
+ }
116
+ if (isHex(signResponse)) {
117
+ signatureData = {
118
+ type: 'secp256k1',
119
+ data: {
120
+ address: owner.address,
121
+ signature: signResponse,
122
+ },
123
+ };
124
+ }
125
+ else {
126
+ signatureData = {
127
+ type: 'webauthn',
128
+ data: {
129
+ signature: JSON.stringify(convertCredentialToJSON(Object.assign({ id: (_f = owner.id) !== null && _f !== void 0 ? _f : '1' }, signResponse))),
130
+ publicKey: owner.publicKey,
131
+ },
132
+ };
133
+ }
134
+ const sendPreparedCallsResponse = (await request({
135
+ method: 'wallet_sendPreparedCalls',
136
+ params: [
137
+ {
138
+ version: '1.0',
139
+ type: prepareCallsResponse.type,
140
+ data: prepareCallsResponse.userOp,
141
+ chainId: prepareCallsResponse.chainId,
142
+ signature: signatureData,
143
+ },
144
+ ],
145
+ }));
146
+ return sendPreparedCallsResponse[0];
147
+ }
148
+ case 'wallet_sendPreparedCalls': {
149
+ assertArrayPresence(args.params);
150
+ // Get the client for the chain
151
+ const chainId = get(args.params[0], 'chainId');
152
+ if (!chainId) {
153
+ throw standardErrors.rpc.invalidParams('chainId is required');
154
+ }
155
+ if (!isHex(chainId)) {
156
+ throw standardErrors.rpc.invalidParams('chainId must be a hex encoded integer');
157
+ }
158
+ const sendPreparedCallsResponse = await client.request({
159
+ method: 'wallet_sendPreparedCalls',
160
+ params: args.params,
161
+ });
162
+ return sendPreparedCallsResponse;
163
+ }
164
+ case 'wallet_prepareCalls': {
165
+ assertArrayPresence(args.params);
166
+ // Get the client for the chain
167
+ const chainId = get(args.params[0], 'chainId');
168
+ if (!chainId) {
169
+ throw standardErrors.rpc.invalidParams('chainId is required');
170
+ }
171
+ if (!isHex(chainId)) {
172
+ throw standardErrors.rpc.invalidParams('chainId must be a hex encoded integer');
173
+ }
174
+ if (!args.params[0]) {
175
+ throw standardErrors.rpc.invalidParams('params are required');
176
+ }
177
+ if (!get(args.params[0], 'calls')) {
178
+ throw standardErrors.rpc.invalidParams('calls are required');
179
+ }
180
+ const prepareCallsParams = args
181
+ .params[0];
182
+ if (attribution &&
183
+ prepareCallsParams.capabilities &&
184
+ !('attribution' in prepareCallsParams.capabilities)) {
185
+ prepareCallsParams.capabilities.attribution = attribution;
186
+ }
187
+ const prepareCallsResponse = await client.request({
188
+ method: 'wallet_prepareCalls',
189
+ params: [
190
+ Object.assign(Object.assign({}, args.params[0]), { chainId: chainId }),
191
+ ],
192
+ });
193
+ return prepareCallsResponse;
194
+ }
195
+ case 'personal_sign': {
196
+ assertArrayPresence(args.params);
197
+ // Param is expected to be a hex encoded string
198
+ if (!isHex(args.params[0])) {
199
+ throw standardErrors.rpc.invalidParams('message must be a hex encoded string');
200
+ }
201
+ // signMessage expects the unencoded message
202
+ const message = hexToString(args.params[0]);
203
+ return account.signMessage({ message });
204
+ }
205
+ case 'eth_signTypedData_v4': {
206
+ assertArrayPresence(args.params);
207
+ const typedData = typeof args.params[1] === 'string'
208
+ ? JSON.parse(args.params[1])
209
+ : args.params[1];
210
+ return account.signTypedData(typedData);
211
+ }
212
+ case 'eth_signTypedData_v1':
213
+ case 'eth_signTypedData_v3':
214
+ case 'wallet_addEthereumChain':
215
+ case 'wallet_switchEthereumChain':
216
+ default:
217
+ throw standardErrors.rpc.methodNotSupported();
218
+ }
219
+ }
220
+ catch (error) {
221
+ // Convert error to RPC error if possible
222
+ if (isViemError(error)) {
223
+ const newError = viemHttpErrorToProviderError(error);
224
+ if (newError) {
225
+ throw newError;
226
+ }
227
+ }
228
+ throw error;
229
+ }
230
+ };
231
+ return { request };
232
+ }
233
+ //# sourceMappingURL=createSubAccountSigner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSubAccountSigner.js","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/createSubAccountSigner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { Client, Hex } from 'viem';
2
+ type FindOwnerIndexParams = {
3
+ /**
4
+ * The address of the account to get the owner index for
5
+ */
6
+ address: `0x${string}`;
7
+ /**
8
+ * The client to use to get the code and read the contract
9
+ */
10
+ client: Client;
11
+ /**
12
+ * The public key of the owner
13
+ */
14
+ publicKey: Hex;
15
+ /**
16
+ * The address of the factory
17
+ */
18
+ factory?: `0x${string}`;
19
+ /**
20
+ * The data of the factory
21
+ */
22
+ factoryData?: Hex;
23
+ };
24
+ export declare function findOwnerIndex({ address, client, publicKey, factory, factoryData, }: FindOwnerIndexParams): Promise<number>;
25
+ /**
26
+ * Formats 20 byte addresses to 32 byte public keys. Contract uses 32 byte keys for owners.
27
+ * @param publicKey - The public key to format
28
+ * @returns The formatted public key
29
+ */
30
+ export declare function formatPublicKey(publicKey: Hex): Hex;
31
+ export {};
32
+ //# sourceMappingURL=findOwnerIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findOwnerIndex.d.ts","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/findOwnerIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,GAAG,EAAsC,MAAM,MAAM,CAAA;AAI/E,KAAK,oBAAoB,GAAG;IAC3B;;OAEG;IACH,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,SAAS,EAAE,GAAG,CAAA;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,GAAG,CAAA;CACjB,CAAA;AAED,wBAAsB,cAAc,CAAC,EACpC,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,WAAW,GACX,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8CxC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAKnD"}
@@ -0,0 +1,56 @@
1
+ import { standardErrors } from '../../../core/error/errors.js';
2
+ import { decodeFunctionData, isAddress, pad } from 'viem';
3
+ import { getCode, readContract } from 'viem/actions';
4
+ import { abi, factoryAbi } from './constants.js';
5
+ export async function findOwnerIndex({ address, client, publicKey, factory, factoryData, }) {
6
+ const code = await getCode(client, {
7
+ address,
8
+ });
9
+ // Check index of owner in the factoryData
10
+ // Note: importing an undeployed contract might need to be handled differently
11
+ // The implemention will likely require the signer to tell us the index
12
+ if (!code && factory && factoryData) {
13
+ const initData = decodeFunctionData({
14
+ abi: factoryAbi,
15
+ data: factoryData,
16
+ });
17
+ if (initData.functionName !== 'createAccount') {
18
+ throw standardErrors.rpc.internal('unknown factory function');
19
+ }
20
+ const [owners] = initData.args;
21
+ return owners.findIndex((owner) => {
22
+ return owner.toLowerCase() === formatPublicKey(publicKey).toLowerCase();
23
+ });
24
+ }
25
+ const ownerCount = await readContract(client, {
26
+ address,
27
+ abi,
28
+ functionName: 'ownerCount',
29
+ });
30
+ // Iterate from highest index down and return early when found
31
+ for (let i = Number(ownerCount) - 1; i >= 0; i--) {
32
+ const owner = await readContract(client, {
33
+ address,
34
+ abi,
35
+ functionName: 'ownerAtIndex',
36
+ args: [BigInt(i)],
37
+ });
38
+ const formatted = formatPublicKey(publicKey);
39
+ if (owner.toLowerCase() === formatted.toLowerCase()) {
40
+ return i;
41
+ }
42
+ }
43
+ return -1;
44
+ }
45
+ /**
46
+ * Formats 20 byte addresses to 32 byte public keys. Contract uses 32 byte keys for owners.
47
+ * @param publicKey - The public key to format
48
+ * @returns The formatted public key
49
+ */
50
+ export function formatPublicKey(publicKey) {
51
+ if (isAddress(publicKey)) {
52
+ return pad(publicKey);
53
+ }
54
+ return publicKey;
55
+ }
56
+ //# sourceMappingURL=findOwnerIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findOwnerIndex.js","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/findOwnerIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAwB,kBAAkB,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAyBhD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACpC,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,WAAW,GACW;IACtB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;QAClC,OAAO;KACP,CAAC,CAAA;IAEF,0CAA0C;IAC1C,8EAA8E;IAC9E,uEAAuE;IACvE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;YACnC,GAAG,EAAE,UAAU;YACf,IAAI,EAAE,WAAW;SACjB,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,YAAY,KAAK,eAAe,EAAE,CAAC;YAC/C,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAA;QAC9D,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAA;QAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,KAAoB,EAAE,EAAE;YAChD,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;QACxE,CAAC,CAAC,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;QAC7C,OAAO;QACP,GAAG;QACH,YAAY,EAAE,YAAY;KAC1B,CAAC,CAAA;IAEF,8DAA8D;IAC9D,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;YACxC,OAAO;YACP,GAAG;YACH,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACjB,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YACrD,OAAO,CAAC,CAAA;QACT,CAAC;IACF,CAAC;IAED,OAAO,CAAC,CAAC,CAAA;AACV,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,SAAc;IAC7C,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { RequestArguments } from '../../../core/provider/interface.js';
2
+ import { OwnerAccount } from '../../../core/type/index.js';
3
+ export declare function handleAddSubAccountOwner({ ownerAccount, globalAccountRequest, chainId, }: {
4
+ ownerAccount: OwnerAccount;
5
+ globalAccountRequest: (request: RequestArguments) => Promise<unknown>;
6
+ chainId: number;
7
+ }): Promise<number>;
8
+ //# sourceMappingURL=handleAddSubAccountOwner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleAddSubAccountOwner.d.ts","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/handleAddSubAccountOwner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAelD,wBAAsB,wBAAwB,CAAC,EAC9C,YAAY,EACZ,oBAAoB,EACpB,OAAO,GACP,EAAE;IACF,YAAY,EAAE,YAAY,CAAA;IAC1B,oBAAoB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACrE,OAAO,EAAE,MAAM,CAAA;CACf,mBAkGA"}
@@ -0,0 +1,78 @@
1
+ import { standardErrors } from '../../../core/error/errors.js';
2
+ import { getClient } from '../../../store/chain-clients/utils.js';
3
+ import { store } from '../../../store/store.js';
4
+ import { assertPresence } from '../../../util/assertPresence.js';
5
+ import { decodeAbiParameters, encodeFunctionData, numberToHex, toHex, } from 'viem';
6
+ import { waitForCallsStatus } from 'viem/experimental';
7
+ import { abi } from './constants.js';
8
+ import { findOwnerIndex } from './findOwnerIndex.js';
9
+ import { presentAddOwnerDialog } from './presentAddOwnerDialog.js';
10
+ export async function handleAddSubAccountOwner({ ownerAccount, globalAccountRequest, chainId, }) {
11
+ var _a, _b;
12
+ const account = store.account.get();
13
+ const subAccount = store.subAccounts.get();
14
+ const globalAccount = (_a = account.accounts) === null || _a === void 0 ? void 0 : _a.find((account) => account.toLowerCase() !== (subAccount === null || subAccount === void 0 ? void 0 : subAccount.address.toLowerCase()));
15
+ assertPresence(globalAccount, standardErrors.provider.unauthorized('no global account'));
16
+ assertPresence((_b = account.chain) === null || _b === void 0 ? void 0 : _b.id, standardErrors.provider.unauthorized('no chain id'));
17
+ assertPresence(subAccount === null || subAccount === void 0 ? void 0 : subAccount.address, standardErrors.provider.unauthorized('no sub account'));
18
+ const calls = [];
19
+ if (ownerAccount.type === 'local' && ownerAccount.address) {
20
+ calls.push({
21
+ to: subAccount.address,
22
+ data: encodeFunctionData({
23
+ abi,
24
+ functionName: 'addOwnerAddress',
25
+ args: [ownerAccount.address],
26
+ }),
27
+ value: toHex(0),
28
+ });
29
+ }
30
+ if (ownerAccount.publicKey) {
31
+ const [x, y] = decodeAbiParameters([{ type: 'bytes32' }, { type: 'bytes32' }], ownerAccount.publicKey);
32
+ calls.push({
33
+ to: subAccount.address,
34
+ data: encodeFunctionData({
35
+ abi,
36
+ functionName: 'addOwnerPublicKey',
37
+ args: [x, y],
38
+ }),
39
+ value: toHex(0),
40
+ });
41
+ }
42
+ const request = {
43
+ method: 'wallet_sendCalls',
44
+ params: [
45
+ {
46
+ version: '1',
47
+ calls,
48
+ chainId: numberToHex(chainId),
49
+ from: globalAccount,
50
+ },
51
+ ],
52
+ };
53
+ const selection = await presentAddOwnerDialog();
54
+ if (selection === 'cancel') {
55
+ throw standardErrors.provider.unauthorized('user cancelled');
56
+ }
57
+ const callsId = (await globalAccountRequest(request));
58
+ const client = getClient(account.chain.id);
59
+ assertPresence(client, standardErrors.rpc.internal(`client not found for chainId ${account.chain.id}`));
60
+ const callsResult = await waitForCallsStatus(client, {
61
+ id: callsId,
62
+ });
63
+ if (callsResult.status !== 'success') {
64
+ throw standardErrors.rpc.internal('add owner call failed');
65
+ }
66
+ const ownerIndex = await findOwnerIndex({
67
+ address: subAccount.address,
68
+ publicKey: ownerAccount.type === 'local' && ownerAccount.address
69
+ ? ownerAccount.address
70
+ : ownerAccount.publicKey,
71
+ client,
72
+ });
73
+ if (ownerIndex === -1) {
74
+ throw standardErrors.rpc.internal('failed to find owner index');
75
+ }
76
+ return ownerIndex;
77
+ }
78
+ //# sourceMappingURL=handleAddSubAccountOwner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleAddSubAccountOwner.js","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/handleAddSubAccountOwner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { InsufficientBalanceErrorData } from '../../../core/error/errors.js';
2
+ import { RequestArguments } from '../../../core/provider/interface.js';
3
+ import { Address } from '../../../core/type/index.js';
4
+ import { PublicClient } from 'viem';
5
+ export declare function handleInsufficientBalanceError({ globalAccountAddress, subAccountAddress, client, request, globalAccountRequest, }: {
6
+ errorData: InsufficientBalanceErrorData;
7
+ globalAccountAddress: Address;
8
+ subAccountAddress: Address;
9
+ request: RequestArguments;
10
+ client: PublicClient;
11
+ globalAccountRequest: (request: RequestArguments) => Promise<unknown>;
12
+ }): Promise<`0x${string}` | {
13
+ capabilities?: {
14
+ [x: string]: any;
15
+ } | undefined;
16
+ id: string;
17
+ } | undefined>;
18
+ //# sourceMappingURL=handleInsufficientBalance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleInsufficientBalance.d.ts","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/handleInsufficientBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,EAE5B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAInC,wBAAsB,8BAA8B,CAAC,EACpD,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,oBAAoB,GACpB,EAAE;IACF,SAAS,EAAE,4BAA4B,CAAA;IACvC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,gBAAgB,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,oBAAoB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACrE;;;;;eAsBA"}
@@ -0,0 +1,27 @@
1
+ import { standardErrors, } from '../../../core/error/errors.js';
2
+ import { assertPresence } from '../../../util/assertPresence.js';
3
+ import { presentSubAccountFundingDialog } from '../utils.js';
4
+ import { routeThroughGlobalAccount } from './routeThroughGlobalAccount.js';
5
+ export async function handleInsufficientBalanceError({ globalAccountAddress, subAccountAddress, client, request, globalAccountRequest, }) {
6
+ var _a;
7
+ const chainId = (_a = client.chain) === null || _a === void 0 ? void 0 : _a.id;
8
+ assertPresence(chainId, standardErrors.rpc.internal(`invalid chainId`));
9
+ try {
10
+ await presentSubAccountFundingDialog();
11
+ }
12
+ catch (_b) {
13
+ throw standardErrors.provider.userRejectedRequest({
14
+ message: 'User cancelled funding',
15
+ });
16
+ }
17
+ const result = await routeThroughGlobalAccount({
18
+ request,
19
+ globalAccountAddress,
20
+ subAccountAddress,
21
+ client,
22
+ globalAccountRequest,
23
+ chainId,
24
+ });
25
+ return result;
26
+ }
27
+ //# sourceMappingURL=handleInsufficientBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleInsufficientBalance.js","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/handleInsufficientBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,cAAc,GACd,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAE1E,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,EACpD,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,oBAAoB,GAQpB;;IACA,MAAM,OAAO,GAAG,MAAA,MAAM,CAAC,KAAK,0CAAE,EAAE,CAAA;IAChC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAEvE,IAAI,CAAC;QACJ,MAAM,8BAA8B,EAAE,CAAA;IACvC,CAAC;IAAC,WAAM,CAAC;QACR,MAAM,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACjD,OAAO,EAAE,wBAAwB;SACjC,CAAC,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;QAC9C,OAAO;QACP,oBAAoB;QACpB,iBAAiB;QACjB,MAAM;QACN,oBAAoB;QACpB,OAAO;KACP,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function presentAddOwnerDialog(): Promise<"cancel" | "authenticate">;
2
+ //# sourceMappingURL=presentAddOwnerDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentAddOwnerDialog.d.ts","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/presentAddOwnerDialog.ts"],"names":[],"mappings":"AAQA,wBAAsB,qBAAqB,uCAwC1C"}
@@ -0,0 +1,46 @@
1
+ import { logDialogActionClicked, logDialogDismissed, logDialogShown, } from '../../../core/telemetry/events/dialog.js';
2
+ import { store } from '../../../store/store.js';
3
+ import { initDialog } from '../../../ui/Dialog/index.js';
4
+ export async function presentAddOwnerDialog() {
5
+ var _a, _b;
6
+ const appName = (_b = (_a = store.config.get().metadata) === null || _a === void 0 ? void 0 : _a.appName) !== null && _b !== void 0 ? _b : 'App';
7
+ const dialog = initDialog();
8
+ return new Promise((resolve) => {
9
+ logDialogShown({ dialogContext: 'sub_account_add_owner' });
10
+ dialog.presentItem({
11
+ title: `Re-authorize ${appName}`,
12
+ message: `${appName} has lost access to your account. Please sign at the next step to re-authorize ${appName}`,
13
+ onClose: () => {
14
+ logDialogDismissed({ dialogContext: 'sub_account_add_owner' });
15
+ resolve('cancel');
16
+ },
17
+ actionItems: [
18
+ {
19
+ text: 'Continue',
20
+ variant: 'primary',
21
+ onClick: () => {
22
+ logDialogActionClicked({
23
+ dialogContext: 'sub_account_add_owner',
24
+ dialogAction: 'confirm',
25
+ });
26
+ dialog.clear();
27
+ resolve('authenticate');
28
+ },
29
+ },
30
+ {
31
+ text: 'Not now',
32
+ variant: 'secondary',
33
+ onClick: () => {
34
+ logDialogActionClicked({
35
+ dialogContext: 'sub_account_add_owner',
36
+ dialogAction: 'cancel',
37
+ });
38
+ dialog.clear();
39
+ resolve('cancel');
40
+ },
41
+ },
42
+ ],
43
+ });
44
+ });
45
+ }
46
+ //# sourceMappingURL=presentAddOwnerDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentAddOwnerDialog.js","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/presentAddOwnerDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,GACd,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,MAAM,CAAC,KAAK,UAAU,qBAAqB;;IAC1C,MAAM,OAAO,GAAG,MAAA,MAAA,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,0CAAE,OAAO,mCAAI,KAAK,CAAA;IAC7D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,OAAO,IAAI,OAAO,CAA4B,CAAC,OAAO,EAAE,EAAE;QACzD,cAAc,CAAC,EAAE,aAAa,EAAE,uBAAuB,EAAE,CAAC,CAAA;QAC1D,MAAM,CAAC,WAAW,CAAC;YAClB,KAAK,EAAE,gBAAgB,OAAO,EAAE;YAChC,OAAO,EAAE,GAAG,OAAO,kFAAkF,OAAO,EAAE;YAC9G,OAAO,EAAE,GAAG,EAAE;gBACb,kBAAkB,CAAC,EAAE,aAAa,EAAE,uBAAuB,EAAE,CAAC,CAAA;gBAC9D,OAAO,CAAC,QAAQ,CAAC,CAAA;YAClB,CAAC;YACD,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,GAAG,EAAE;wBACb,sBAAsB,CAAC;4BACtB,aAAa,EAAE,uBAAuB;4BACtC,YAAY,EAAE,SAAS;yBACvB,CAAC,CAAA;wBACF,MAAM,CAAC,KAAK,EAAE,CAAA;wBACd,OAAO,CAAC,cAAc,CAAC,CAAA;oBACxB,CAAC;iBACD;gBACD;oBACC,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,GAAG,EAAE;wBACb,sBAAsB,CAAC;4BACtB,aAAa,EAAE,uBAAuB;4BACtC,YAAY,EAAE,QAAQ;yBACtB,CAAC,CAAA;wBACF,MAAM,CAAC,KAAK,EAAE,CAAA;wBACd,OAAO,CAAC,QAAQ,CAAC,CAAA;oBAClB,CAAC;iBACD;aACD;SACD,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { RequestArguments } from '../../../core/provider/interface.js';
2
+ import { Address, Hex, PublicClient } from 'viem';
3
+ /**
4
+ * This function is used to send a request to the global account.
5
+ * It is used to execute a request that requires a spend permission through the global account.
6
+ * @returns The result of the request.
7
+ */
8
+ export declare function routeThroughGlobalAccount({ request, globalAccountAddress, subAccountAddress, client, globalAccountRequest, chainId, prependCalls, }: {
9
+ /** The request to send to the global account. */
10
+ request: RequestArguments;
11
+ /** The address of the global account. */
12
+ globalAccountAddress: Address;
13
+ /** The address of the sub account. */
14
+ subAccountAddress: Address;
15
+ /** The client to use to send the request. */
16
+ client: PublicClient;
17
+ /** The chain id to use to send the request. */
18
+ chainId: number;
19
+ /** Optional calls to prepend to the request. */
20
+ prependCalls?: {
21
+ to: Address;
22
+ data: Hex;
23
+ value: Hex;
24
+ }[] | undefined;
25
+ /** The function to use to send the request to the global account. */
26
+ globalAccountRequest: (request: RequestArguments) => Promise<any>;
27
+ }): Promise<`0x${string}` | {
28
+ capabilities?: {
29
+ [x: string]: any;
30
+ } | undefined;
31
+ id: string;
32
+ } | undefined>;
33
+ //# sourceMappingURL=routeThroughGlobalAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeThroughGlobalAccount.d.ts","sourceRoot":"","sources":["../../../../src/sign/app-sdk/utils/routeThroughGlobalAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EACN,OAAO,EACP,GAAG,EACH,YAAY,EAKZ,MAAM,MAAM,CAAA;AAWb;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,EAC/C,OAAO,EACP,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,EACN,oBAAoB,EACpB,OAAO,EACP,YAAY,GACZ,EAAE;IACF,iDAAiD;IACjD,OAAO,EAAE,gBAAgB,CAAA;IACzB,yCAAyC;IACzC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,sCAAsC;IACtC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,6CAA6C;IAC7C,MAAM,EAAE,YAAY,CAAA;IACpB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,gDAAgD;IAChD,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,EAAE,GAAG,SAAS,CAAA;IACnE,qEAAqE;IACrE,oBAAoB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACjE;;;;;eAsFA"}