@zerodev/wallet-core 0.0.1-alpha.9 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/README.md +68 -18
  2. package/dist/_cjs/actions/auth/authenticateWithEmail.js +1 -2
  3. package/dist/_cjs/actions/auth/authenticateWithEmail.js.map +1 -1
  4. package/dist/_cjs/actions/auth/authenticateWithOAuth.js +2 -3
  5. package/dist/_cjs/actions/auth/authenticateWithOAuth.js.map +1 -1
  6. package/dist/_cjs/actions/auth/getAuthProxyConfigId.js +10 -0
  7. package/dist/_cjs/actions/auth/getAuthProxyConfigId.js.map +1 -0
  8. package/dist/_cjs/actions/auth/getAuthenticators.js +16 -0
  9. package/dist/_cjs/actions/auth/getAuthenticators.js.map +1 -0
  10. package/dist/_cjs/actions/auth/getOAuthLoginUrl.js +18 -0
  11. package/dist/_cjs/actions/auth/getOAuthLoginUrl.js.map +1 -0
  12. package/dist/_cjs/actions/auth/getParentOrgId.js +10 -0
  13. package/dist/_cjs/actions/auth/getParentOrgId.js.map +1 -0
  14. package/dist/_cjs/actions/auth/getWhoami.js +18 -4
  15. package/dist/_cjs/actions/auth/getWhoami.js.map +1 -1
  16. package/dist/_cjs/actions/auth/index.js +9 -3
  17. package/dist/_cjs/actions/auth/index.js.map +1 -1
  18. package/dist/_cjs/actions/auth/loginWithStamp.js +5 -6
  19. package/dist/_cjs/actions/auth/loginWithStamp.js.map +1 -1
  20. package/dist/_cjs/actions/auth/registerWithOTP.js +1 -2
  21. package/dist/_cjs/actions/auth/registerWithOTP.js.map +1 -1
  22. package/dist/_cjs/actions/auth/registerWithPasskey.js +1 -2
  23. package/dist/_cjs/actions/auth/registerWithPasskey.js.map +1 -1
  24. package/dist/_cjs/actions/index.js +9 -3
  25. package/dist/_cjs/actions/index.js.map +1 -1
  26. package/dist/_cjs/actions/wallet/getUserWallet.js +3 -5
  27. package/dist/_cjs/actions/wallet/getUserWallet.js.map +1 -1
  28. package/dist/_cjs/actions/wallet/index.js +9 -3
  29. package/dist/_cjs/actions/wallet/index.js.map +1 -1
  30. package/dist/_cjs/actions/wallet/sign7702Authorization.js +16 -0
  31. package/dist/_cjs/actions/wallet/sign7702Authorization.js.map +1 -0
  32. package/dist/_cjs/actions/wallet/signMessage.js +17 -0
  33. package/dist/_cjs/actions/wallet/signMessage.js.map +1 -0
  34. package/dist/_cjs/actions/wallet/signTransaction.js +9 -18
  35. package/dist/_cjs/actions/wallet/signTransaction.js.map +1 -1
  36. package/dist/_cjs/actions/wallet/signTypedDataV4.js +17 -0
  37. package/dist/_cjs/actions/wallet/signTypedDataV4.js.map +1 -0
  38. package/dist/_cjs/actions/wallet/signUserOperation.js +17 -0
  39. package/dist/_cjs/actions/wallet/signUserOperation.js.map +1 -0
  40. package/dist/_cjs/actions/wallet/signingUtils.js +64 -0
  41. package/dist/_cjs/actions/wallet/signingUtils.js.map +1 -0
  42. package/dist/_cjs/adapters/viem.js +60 -27
  43. package/dist/_cjs/adapters/viem.js.map +1 -1
  44. package/dist/_cjs/client/authProxy.js +1 -1
  45. package/dist/_cjs/client/authProxy.js.map +1 -1
  46. package/dist/_cjs/client/createClient.js +5 -5
  47. package/dist/_cjs/client/createClient.js.map +1 -1
  48. package/dist/_cjs/client/decorators/client.js +9 -4
  49. package/dist/_cjs/client/decorators/client.js.map +1 -1
  50. package/dist/_cjs/client/index.js.map +1 -1
  51. package/dist/_cjs/client/transports/createTransport.js +6 -5
  52. package/dist/_cjs/client/transports/createTransport.js.map +1 -1
  53. package/dist/_cjs/client/transports/rest.js +40 -28
  54. package/dist/_cjs/client/transports/rest.js.map +1 -1
  55. package/dist/_cjs/constants.js +4 -4
  56. package/dist/_cjs/constants.js.map +1 -1
  57. package/dist/_cjs/core/{createZeroDevWallet.js → createZeroDevWalletCore.js} +94 -86
  58. package/dist/_cjs/core/createZeroDevWalletCore.js.map +1 -0
  59. package/dist/_cjs/index.js +14 -8
  60. package/dist/_cjs/index.js.map +1 -1
  61. package/dist/_cjs/index.native.js +39 -0
  62. package/dist/_cjs/index.native.js.map +1 -0
  63. package/dist/_cjs/native/createZeroDevWallet.js +13 -0
  64. package/dist/_cjs/native/createZeroDevWallet.js.map +1 -0
  65. package/dist/_cjs/native/stampers/passkey.js +30 -0
  66. package/dist/_cjs/native/stampers/passkey.js.map +1 -0
  67. package/dist/_cjs/native/stampers/secureStore.js +112 -0
  68. package/dist/_cjs/native/stampers/secureStore.js.map +1 -0
  69. package/dist/_cjs/native/storage/asyncStorage.js +11 -0
  70. package/dist/_cjs/native/storage/asyncStorage.js.map +1 -0
  71. package/dist/_cjs/stampers/iframeStamper.js +3 -0
  72. package/dist/_cjs/stampers/iframeStamper.js.map +1 -1
  73. package/dist/_cjs/stampers/indexedDbStamper.js +20 -2
  74. package/dist/_cjs/stampers/indexedDbStamper.js.map +1 -1
  75. package/dist/_cjs/stampers/noopPasskeyStamper.js +16 -0
  76. package/dist/_cjs/stampers/noopPasskeyStamper.js.map +1 -0
  77. package/dist/_cjs/stampers/webauthnStamper.js +23 -3
  78. package/dist/_cjs/stampers/webauthnStamper.js.map +1 -1
  79. package/dist/_cjs/stubs/native-on-web.js +12 -0
  80. package/dist/_cjs/stubs/native-on-web.js.map +1 -0
  81. package/dist/_cjs/utils/encryptOtpAttempt.js +57 -0
  82. package/dist/_cjs/utils/encryptOtpAttempt.js.map +1 -0
  83. package/dist/_cjs/utils/exportPrivateKey.js +1 -1
  84. package/dist/_cjs/utils/exportPrivateKey.js.map +1 -1
  85. package/dist/_cjs/utils/exportWallet.js +52 -61
  86. package/dist/_cjs/utils/exportWallet.js.map +1 -1
  87. package/dist/_cjs/utils/hpke.js +78 -0
  88. package/dist/_cjs/utils/hpke.js.map +1 -0
  89. package/dist/_cjs/utils/platform.js +19 -0
  90. package/dist/_cjs/utils/platform.js.map +1 -0
  91. package/dist/_cjs/utils/resolveOrganizationId.js +20 -0
  92. package/dist/_cjs/utils/resolveOrganizationId.js.map +1 -0
  93. package/dist/_cjs/utils/utils.js +5 -6
  94. package/dist/_cjs/utils/utils.js.map +1 -1
  95. package/dist/_cjs/web/createZeroDevWallet.js +21 -0
  96. package/dist/_cjs/web/createZeroDevWallet.js.map +1 -0
  97. package/dist/_esm/actions/auth/authenticateWithEmail.js +1 -2
  98. package/dist/_esm/actions/auth/authenticateWithEmail.js.map +1 -1
  99. package/dist/_esm/actions/auth/authenticateWithOAuth.js +8 -7
  100. package/dist/_esm/actions/auth/authenticateWithOAuth.js.map +1 -1
  101. package/dist/_esm/actions/auth/getAuthProxyConfigId.js +13 -0
  102. package/dist/_esm/actions/auth/getAuthProxyConfigId.js.map +1 -0
  103. package/dist/_esm/actions/auth/getAuthenticators.js +36 -0
  104. package/dist/_esm/actions/auth/getAuthenticators.js.map +1 -0
  105. package/dist/_esm/actions/auth/getOAuthLoginUrl.js +23 -0
  106. package/dist/_esm/actions/auth/getOAuthLoginUrl.js.map +1 -0
  107. package/dist/_esm/actions/auth/getParentOrgId.js +17 -0
  108. package/dist/_esm/actions/auth/getParentOrgId.js.map +1 -0
  109. package/dist/_esm/actions/auth/getWhoami.js +28 -6
  110. package/dist/_esm/actions/auth/getWhoami.js.map +1 -1
  111. package/dist/_esm/actions/auth/index.js +4 -1
  112. package/dist/_esm/actions/auth/index.js.map +1 -1
  113. package/dist/_esm/actions/auth/loginWithStamp.js +9 -6
  114. package/dist/_esm/actions/auth/loginWithStamp.js.map +1 -1
  115. package/dist/_esm/actions/auth/registerWithOTP.js +5 -2
  116. package/dist/_esm/actions/auth/registerWithOTP.js.map +1 -1
  117. package/dist/_esm/actions/auth/registerWithPasskey.js +1 -3
  118. package/dist/_esm/actions/auth/registerWithPasskey.js.map +1 -1
  119. package/dist/_esm/actions/index.js +2 -2
  120. package/dist/_esm/actions/index.js.map +1 -1
  121. package/dist/_esm/actions/wallet/getUserWallet.js +5 -5
  122. package/dist/_esm/actions/wallet/getUserWallet.js.map +1 -1
  123. package/dist/_esm/actions/wallet/index.js +4 -1
  124. package/dist/_esm/actions/wallet/index.js.map +1 -1
  125. package/dist/_esm/actions/wallet/sign7702Authorization.js +13 -0
  126. package/dist/_esm/actions/wallet/sign7702Authorization.js.map +1 -0
  127. package/dist/_esm/actions/wallet/signMessage.js +14 -0
  128. package/dist/_esm/actions/wallet/signMessage.js.map +1 -0
  129. package/dist/_esm/actions/wallet/signTransaction.js +9 -36
  130. package/dist/_esm/actions/wallet/signTransaction.js.map +1 -1
  131. package/dist/_esm/actions/wallet/signTypedDataV4.js +14 -0
  132. package/dist/_esm/actions/wallet/signTypedDataV4.js.map +1 -0
  133. package/dist/_esm/actions/wallet/signUserOperation.js +14 -0
  134. package/dist/_esm/actions/wallet/signUserOperation.js.map +1 -0
  135. package/dist/_esm/actions/wallet/signingUtils.js +69 -0
  136. package/dist/_esm/actions/wallet/signingUtils.js.map +1 -0
  137. package/dist/_esm/adapters/viem.js +63 -30
  138. package/dist/_esm/adapters/viem.js.map +1 -1
  139. package/dist/_esm/client/authProxy.js +9 -4
  140. package/dist/_esm/client/authProxy.js.map +1 -1
  141. package/dist/_esm/client/createClient.js +5 -5
  142. package/dist/_esm/client/createClient.js.map +1 -1
  143. package/dist/_esm/client/decorators/client.js +9 -4
  144. package/dist/_esm/client/decorators/client.js.map +1 -1
  145. package/dist/_esm/client/index.js +1 -1
  146. package/dist/_esm/client/index.js.map +1 -1
  147. package/dist/_esm/client/transports/createTransport.js +6 -5
  148. package/dist/_esm/client/transports/createTransport.js.map +1 -1
  149. package/dist/_esm/client/transports/rest.js +44 -29
  150. package/dist/_esm/client/transports/rest.js.map +1 -1
  151. package/dist/_esm/constants.js +10 -3
  152. package/dist/_esm/constants.js.map +1 -1
  153. package/dist/_esm/core/{createZeroDevWallet.js → createZeroDevWalletCore.js} +115 -90
  154. package/dist/_esm/core/createZeroDevWalletCore.js.map +1 -0
  155. package/dist/_esm/index.js +13 -5
  156. package/dist/_esm/index.js.map +1 -1
  157. package/dist/_esm/index.native.js +19 -0
  158. package/dist/_esm/index.native.js.map +1 -0
  159. package/dist/_esm/native/createZeroDevWallet.js +10 -0
  160. package/dist/_esm/native/createZeroDevWallet.js.map +1 -0
  161. package/dist/_esm/native/stampers/passkey.js +27 -0
  162. package/dist/_esm/native/stampers/passkey.js.map +1 -0
  163. package/dist/_esm/native/stampers/secureStore.js +120 -0
  164. package/dist/_esm/native/stampers/secureStore.js.map +1 -0
  165. package/dist/_esm/native/storage/asyncStorage.js +13 -0
  166. package/dist/_esm/native/storage/asyncStorage.js.map +1 -0
  167. package/dist/_esm/stampers/iframeStamper.js +3 -0
  168. package/dist/_esm/stampers/iframeStamper.js.map +1 -1
  169. package/dist/_esm/stampers/indexedDbStamper.js +20 -2
  170. package/dist/_esm/stampers/indexedDbStamper.js.map +1 -1
  171. package/dist/_esm/stampers/noopPasskeyStamper.js +18 -0
  172. package/dist/_esm/stampers/noopPasskeyStamper.js.map +1 -0
  173. package/dist/_esm/stampers/webauthnStamper.js +23 -4
  174. package/dist/_esm/stampers/webauthnStamper.js.map +1 -1
  175. package/dist/_esm/stubs/native-on-web.js +25 -0
  176. package/dist/_esm/stubs/native-on-web.js.map +1 -0
  177. package/dist/_esm/utils/encryptOtpAttempt.js +81 -0
  178. package/dist/_esm/utils/encryptOtpAttempt.js.map +1 -0
  179. package/dist/_esm/utils/exportPrivateKey.js +1 -1
  180. package/dist/_esm/utils/exportPrivateKey.js.map +1 -1
  181. package/dist/_esm/utils/exportWallet.js +52 -61
  182. package/dist/_esm/utils/exportWallet.js.map +1 -1
  183. package/dist/_esm/utils/hpke.js +119 -0
  184. package/dist/_esm/utils/hpke.js.map +1 -0
  185. package/dist/_esm/utils/platform.js +16 -0
  186. package/dist/_esm/utils/platform.js.map +1 -0
  187. package/dist/_esm/utils/resolveOrganizationId.js +27 -0
  188. package/dist/_esm/utils/resolveOrganizationId.js.map +1 -0
  189. package/dist/_esm/utils/utils.js +5 -6
  190. package/dist/_esm/utils/utils.js.map +1 -1
  191. package/dist/_esm/web/createZeroDevWallet.js +18 -0
  192. package/dist/_esm/web/createZeroDevWallet.js.map +1 -0
  193. package/dist/_types/actions/auth/authenticateWithEmail.d.ts +0 -6
  194. package/dist/_types/actions/auth/authenticateWithEmail.d.ts.map +1 -1
  195. package/dist/_types/actions/auth/authenticateWithOAuth.d.ts +10 -4
  196. package/dist/_types/actions/auth/authenticateWithOAuth.d.ts.map +1 -1
  197. package/dist/_types/actions/auth/getAuthProxyConfigId.d.ts +12 -0
  198. package/dist/_types/actions/auth/getAuthProxyConfigId.d.ts.map +1 -0
  199. package/dist/_types/actions/auth/getAuthenticators.d.ts +65 -0
  200. package/dist/_types/actions/auth/getAuthenticators.d.ts.map +1 -0
  201. package/dist/_types/actions/auth/getOAuthLoginUrl.d.ts +30 -0
  202. package/dist/_types/actions/auth/getOAuthLoginUrl.d.ts.map +1 -0
  203. package/dist/_types/actions/auth/getParentOrgId.d.ts +17 -0
  204. package/dist/_types/actions/auth/getParentOrgId.d.ts.map +1 -0
  205. package/dist/_types/actions/auth/getWhoami.d.ts +9 -2
  206. package/dist/_types/actions/auth/getWhoami.d.ts.map +1 -1
  207. package/dist/_types/actions/auth/index.d.ts +5 -2
  208. package/dist/_types/actions/auth/index.d.ts.map +1 -1
  209. package/dist/_types/actions/auth/loginWithStamp.d.ts +2 -5
  210. package/dist/_types/actions/auth/loginWithStamp.d.ts.map +1 -1
  211. package/dist/_types/actions/auth/registerWithOTP.d.ts +10 -3
  212. package/dist/_types/actions/auth/registerWithOTP.d.ts.map +1 -1
  213. package/dist/_types/actions/auth/registerWithPasskey.d.ts +0 -7
  214. package/dist/_types/actions/auth/registerWithPasskey.d.ts.map +1 -1
  215. package/dist/_types/actions/index.d.ts +2 -2
  216. package/dist/_types/actions/index.d.ts.map +1 -1
  217. package/dist/_types/actions/wallet/index.d.ts +4 -1
  218. package/dist/_types/actions/wallet/index.d.ts.map +1 -1
  219. package/dist/_types/actions/wallet/sign7702Authorization.d.ts +19 -0
  220. package/dist/_types/actions/wallet/sign7702Authorization.d.ts.map +1 -0
  221. package/dist/_types/actions/wallet/signMessage.d.ts +19 -0
  222. package/dist/_types/actions/wallet/signMessage.d.ts.map +1 -0
  223. package/dist/_types/actions/wallet/signTransaction.d.ts +1 -19
  224. package/dist/_types/actions/wallet/signTransaction.d.ts.map +1 -1
  225. package/dist/_types/actions/wallet/signTypedDataV4.d.ts +21 -0
  226. package/dist/_types/actions/wallet/signTypedDataV4.d.ts.map +1 -0
  227. package/dist/_types/actions/wallet/signUserOperation.d.ts +21 -0
  228. package/dist/_types/actions/wallet/signUserOperation.d.ts.map +1 -0
  229. package/dist/_types/actions/wallet/signingUtils.d.ts +32 -0
  230. package/dist/_types/actions/wallet/signingUtils.d.ts.map +1 -0
  231. package/dist/_types/adapters/viem.d.ts +1 -1
  232. package/dist/_types/adapters/viem.d.ts.map +1 -1
  233. package/dist/_types/client/authProxy.d.ts +13 -7
  234. package/dist/_types/client/authProxy.d.ts.map +1 -1
  235. package/dist/_types/client/decorators/client.d.ts +32 -6
  236. package/dist/_types/client/decorators/client.d.ts.map +1 -1
  237. package/dist/_types/client/index.d.ts +1 -1
  238. package/dist/_types/client/index.d.ts.map +1 -1
  239. package/dist/_types/client/transports/createTransport.d.ts +2 -0
  240. package/dist/_types/client/transports/createTransport.d.ts.map +1 -1
  241. package/dist/_types/client/transports/rest.d.ts +13 -5
  242. package/dist/_types/client/transports/rest.d.ts.map +1 -1
  243. package/dist/_types/client/types.d.ts +9 -9
  244. package/dist/_types/client/types.d.ts.map +1 -1
  245. package/dist/_types/constants.d.ts +3 -3
  246. package/dist/_types/constants.d.ts.map +1 -1
  247. package/dist/_types/core/{createZeroDevWallet.d.ts → createZeroDevWalletCore.d.ts} +30 -10
  248. package/dist/_types/core/createZeroDevWalletCore.d.ts.map +1 -0
  249. package/dist/_types/index.d.ts +7 -7
  250. package/dist/_types/index.d.ts.map +1 -1
  251. package/dist/_types/index.native.d.ts +19 -0
  252. package/dist/_types/index.native.d.ts.map +1 -0
  253. package/dist/_types/native/createZeroDevWallet.d.ts +12 -0
  254. package/dist/_types/native/createZeroDevWallet.d.ts.map +1 -0
  255. package/dist/_types/native/stampers/passkey.d.ts +5 -0
  256. package/dist/_types/native/stampers/passkey.d.ts.map +1 -0
  257. package/dist/_types/native/stampers/secureStore.d.ts +3 -0
  258. package/dist/_types/native/stampers/secureStore.d.ts.map +1 -0
  259. package/dist/_types/native/storage/asyncStorage.d.ts +3 -0
  260. package/dist/_types/native/storage/asyncStorage.d.ts.map +1 -0
  261. package/dist/_types/stampers/iframeStamper.d.ts.map +1 -1
  262. package/dist/_types/stampers/indexedDbStamper.d.ts +2 -2
  263. package/dist/_types/stampers/indexedDbStamper.d.ts.map +1 -1
  264. package/dist/_types/stampers/noopPasskeyStamper.d.ts +8 -0
  265. package/dist/_types/stampers/noopPasskeyStamper.d.ts.map +1 -0
  266. package/dist/_types/stampers/types.d.ts +39 -5
  267. package/dist/_types/stampers/types.d.ts.map +1 -1
  268. package/dist/_types/stampers/webauthnStamper.d.ts +2 -2
  269. package/dist/_types/stampers/webauthnStamper.d.ts.map +1 -1
  270. package/dist/_types/stubs/native-on-web.d.ts +6 -0
  271. package/dist/_types/stubs/native-on-web.d.ts.map +1 -0
  272. package/dist/_types/types/session.d.ts +2 -3
  273. package/dist/_types/types/session.d.ts.map +1 -1
  274. package/dist/_types/utils/buildClientSignature.d.ts +3 -3
  275. package/dist/_types/utils/buildClientSignature.d.ts.map +1 -1
  276. package/dist/_types/utils/encryptOtpAttempt.d.ts +40 -0
  277. package/dist/_types/utils/encryptOtpAttempt.d.ts.map +1 -0
  278. package/dist/_types/utils/exportPrivateKey.d.ts +1 -1
  279. package/dist/_types/utils/exportPrivateKey.d.ts.map +1 -1
  280. package/dist/_types/utils/exportWallet.d.ts +1 -1
  281. package/dist/_types/utils/exportWallet.d.ts.map +1 -1
  282. package/dist/_types/utils/hpke.d.ts +38 -0
  283. package/dist/_types/utils/hpke.d.ts.map +1 -0
  284. package/dist/_types/utils/platform.d.ts +2 -0
  285. package/dist/_types/utils/platform.d.ts.map +1 -0
  286. package/dist/_types/utils/resolveOrganizationId.d.ts +16 -0
  287. package/dist/_types/utils/resolveOrganizationId.d.ts.map +1 -0
  288. package/dist/_types/utils/utils.d.ts.map +1 -1
  289. package/dist/_types/web/createZeroDevWallet.d.ts +18 -0
  290. package/dist/_types/web/createZeroDevWallet.d.ts.map +1 -0
  291. package/dist/tsconfig.build.tsbuildinfo +1 -1
  292. package/package.json +100 -11
  293. package/src/actions/auth/authenticateWithEmail.ts +1 -9
  294. package/src/actions/auth/authenticateWithOAuth.ts +12 -7
  295. package/src/actions/auth/getAuthProxyConfigId.ts +20 -0
  296. package/src/actions/auth/getAuthenticators.ts +89 -0
  297. package/src/actions/auth/getOAuthLoginUrl.ts +48 -0
  298. package/src/actions/auth/getParentOrgId.ts +25 -0
  299. package/src/actions/auth/getWhoami.ts +33 -6
  300. package/src/actions/auth/index.ts +21 -5
  301. package/src/actions/auth/loginWithStamp.ts +11 -12
  302. package/src/actions/auth/registerWithOTP.ts +11 -5
  303. package/src/actions/auth/registerWithPasskey.ts +1 -10
  304. package/src/actions/index.ts +26 -7
  305. package/src/actions/wallet/getUserWallet.ts +5 -5
  306. package/src/actions/wallet/index.ts +22 -4
  307. package/src/actions/wallet/sign7702Authorization.ts +48 -0
  308. package/src/actions/wallet/signMessage.ts +47 -0
  309. package/src/actions/wallet/signTransaction.ts +19 -38
  310. package/src/actions/wallet/signTypedDataV4.ts +52 -0
  311. package/src/actions/wallet/signUserOperation.ts +56 -0
  312. package/src/actions/wallet/signingUtils.ts +110 -0
  313. package/src/adapters/viem.ts +75 -43
  314. package/src/client/authProxy.ts +14 -8
  315. package/src/client/createClient.ts +6 -6
  316. package/src/client/decorators/client.ts +78 -19
  317. package/src/client/index.ts +4 -1
  318. package/src/client/transports/createTransport.ts +8 -5
  319. package/src/client/transports/rest.ts +57 -34
  320. package/src/client/types.ts +9 -9
  321. package/src/constants.ts +12 -4
  322. package/src/core/{createZeroDevWallet.ts → createZeroDevWalletCore.ts} +147 -122
  323. package/src/index.native.ts +102 -0
  324. package/src/index.ts +49 -16
  325. package/src/native/createZeroDevWallet.ts +26 -0
  326. package/src/native/stampers/passkey.ts +39 -0
  327. package/src/native/stampers/secureStore.ts +139 -0
  328. package/src/native/storage/asyncStorage.ts +18 -0
  329. package/src/stampers/iframeStamper.ts +3 -0
  330. package/src/stampers/indexedDbStamper.ts +27 -4
  331. package/src/stampers/noopPasskeyStamper.ts +21 -0
  332. package/src/stampers/types.ts +39 -5
  333. package/src/stampers/webauthnStamper.ts +27 -6
  334. package/src/stubs/native-on-web.ts +29 -0
  335. package/src/types/session.ts +2 -3
  336. package/src/utils/buildClientSignature.ts +3 -3
  337. package/src/utils/encryptOtpAttempt.ts +142 -0
  338. package/src/utils/exportPrivateKey.ts +2 -2
  339. package/src/utils/exportWallet.ts +66 -75
  340. package/src/utils/hpke.ts +219 -0
  341. package/src/utils/platform.ts +21 -0
  342. package/src/utils/resolveOrganizationId.ts +28 -0
  343. package/src/utils/utils.ts +5 -6
  344. package/src/web/createZeroDevWallet.ts +45 -0
  345. package/dist/_cjs/actions/auth/getUserEmail.js +0 -19
  346. package/dist/_cjs/actions/auth/getUserEmail.js.map +0 -1
  347. package/dist/_cjs/actions/wallet/signRawPayload.js +0 -27
  348. package/dist/_cjs/actions/wallet/signRawPayload.js.map +0 -1
  349. package/dist/_cjs/core/createZeroDevWallet.js.map +0 -1
  350. package/dist/_cjs/stampers/index.js +0 -10
  351. package/dist/_cjs/stampers/index.js.map +0 -1
  352. package/dist/_esm/actions/auth/getUserEmail.js +0 -33
  353. package/dist/_esm/actions/auth/getUserEmail.js.map +0 -1
  354. package/dist/_esm/actions/wallet/signRawPayload.js +0 -42
  355. package/dist/_esm/actions/wallet/signRawPayload.js.map +0 -1
  356. package/dist/_esm/core/createZeroDevWallet.js.map +0 -1
  357. package/dist/_esm/stampers/index.js +0 -4
  358. package/dist/_esm/stampers/index.js.map +0 -1
  359. package/dist/_types/actions/auth/getUserEmail.d.ts +0 -32
  360. package/dist/_types/actions/auth/getUserEmail.d.ts.map +0 -1
  361. package/dist/_types/actions/wallet/signRawPayload.d.ts +0 -39
  362. package/dist/_types/actions/wallet/signRawPayload.d.ts.map +0 -1
  363. package/dist/_types/core/createZeroDevWallet.d.ts.map +0 -1
  364. package/dist/_types/stampers/index.d.ts +0 -5
  365. package/dist/_types/stampers/index.d.ts.map +0 -1
  366. package/src/actions/auth/getUserEmail.ts +0 -52
  367. package/src/actions/wallet/signRawPayload.ts +0 -75
  368. package/src/stampers/index.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"authenticateWithEmail.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithEmail.ts"],"names":[],"mappings":"AA+BA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAA;IAExE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,kBAAkB;YAClB,eAAe;YACf,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"authenticateWithEmail.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithEmail.ts"],"names":[],"mappings":"AAwBA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAEpD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,eAAe;YACf,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Authenticates a user with OAuth using cookie-based backend flow
2
+ * Authenticates a user with OAuth using a server-side session ID
3
3
  *
4
- * The backend reads the OAuth session from a cookie set during the OAuth flow.
5
- * This requires the OAuth popup flow to complete first via the backend's
6
- * /oauth/google/login endpoint.
4
+ * The backend stores the OAuth session server-side and returns a session ID
5
+ * via the callback URL. The SDK extracts this session ID and sends it in
6
+ * the request body.
7
7
  *
8
8
  * @param client - The ZeroDev Wallet client
9
9
  * @param params - The parameters for OAuth authentication
@@ -14,16 +14,17 @@
14
14
  * const result = await authenticateWithOAuth(client, {
15
15
  * provider: 'google',
16
16
  * projectId: 'proj_456',
17
+ * sessionId: 'abc123',
18
+ * popSignature: '3045022100...',
17
19
  * });
18
20
  * ```
19
21
  */
20
22
  export async function authenticateWithOAuth(client, params) {
21
- const { projectId } = params;
23
+ const { projectId, sessionId, popSignature } = params;
22
24
  return await client.request({
23
25
  path: `${projectId}/auth/oauth`,
24
26
  method: 'POST',
25
- body: null,
26
- credentials: 'include',
27
+ body: { sessionId, popSignature },
27
28
  });
28
29
  }
29
30
  //# sourceMappingURL=authenticateWithOAuth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authenticateWithOAuth.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithOAuth.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAE5B,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,aAAa;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,SAAS;KACvB,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"authenticateWithOAuth.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithOAuth.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAErD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,aAAa;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE;KAClC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Fetches the auth proxy config ID from the backend
3
+ *
4
+ * @param client - The ZeroDev Wallet client
5
+ * @returns The auth proxy config ID
6
+ */
7
+ export async function getAuthProxyConfigId(client) {
8
+ return await client.request({
9
+ path: 'server-info/auth-proxy-id',
10
+ method: 'GET',
11
+ });
12
+ }
13
+ //# sourceMappingURL=getAuthProxyConfigId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAuthProxyConfigId.js","sourceRoot":"","sources":["../../../../src/actions/auth/getAuthProxyConfigId.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc;IAEd,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,2BAA2B;QACjC,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Fetches all authenticators (oauths, passkeys, emailContacts, apiKeys) for
3
+ * the authenticated user within the given project/sub-organization.
4
+ *
5
+ * Corresponds to `POST /api/v1/{projectId}/authenticators`.
6
+ *
7
+ * @param client - The ZeroDev Wallet client
8
+ * @param params - The parameters for the authenticators request
9
+ * @returns The user's authenticators grouped by type
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const authenticators = await getAuthenticators(client, {
14
+ * subOrganizationId: 'suborg_123',
15
+ * projectId: 'proj_456',
16
+ * token: 'session_token_abc',
17
+ * });
18
+ * console.log(authenticators.oauths, authenticators.passkeys);
19
+ * ```
20
+ */
21
+ export async function getAuthenticators(client, params) {
22
+ const { projectId, token } = params;
23
+ // GET behind StampCheckUser: the backend resolves the user from the stamped
24
+ // credential (+ session JWT), so no body / sub-org is sent. The stamp signs
25
+ // the X-Timestamp value (see transport `stampPostion: 'timestamp'`).
26
+ return await client.request({
27
+ path: `${projectId}/authenticators`,
28
+ method: 'GET',
29
+ headers: {
30
+ Authorization: `Bearer ${token}`,
31
+ },
32
+ stamp: true,
33
+ stampPostion: 'timestamp',
34
+ });
35
+ }
36
+ //# sourceMappingURL=getAuthenticators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAuthenticators.js","sourceRoot":"","sources":["../../../../src/actions/auth/getAuthenticators.ts"],"names":[],"mappings":"AAkDA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,MAAmC;IAEnC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEnC,4EAA4E;IAC5E,4EAA4E;IAC5E,qEAAqE;IACrE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,iBAAiB;QACnC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,WAAW;KAC1B,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Fetches the Google OAuth authorization URL from the backend.
3
+ *
4
+ * The SDK must verify the returned URL's `nonce` against
5
+ * `sha256(utf8(publicKey))` (and the host is `accounts.google.com`)
6
+ * before opening it in a popup — the backend is not a trusted party.
7
+ * See audit finding TOB-KMS-1.
8
+ */
9
+ export async function getOAuthLoginUrl(client, params) {
10
+ if (params.provider !== 'google') {
11
+ throw new Error(`Unsupported OAuth provider: ${params.provider}`);
12
+ }
13
+ const query = new URLSearchParams({
14
+ project_id: params.projectId,
15
+ pub_key: params.publicKey.replace(/^0x/, '').toLowerCase(),
16
+ return_to: params.returnTo,
17
+ });
18
+ return await client.request({
19
+ path: `oauth/google/login-url?${query.toString()}`,
20
+ method: 'GET',
21
+ });
22
+ }
23
+ //# sourceMappingURL=getOAuthLoginUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOAuthLoginUrl.js","sourceRoot":"","sources":["../../../../src/actions/auth/getOAuthLoginUrl.ts"],"names":[],"mappings":"AAuBA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,MAAkC;IAElC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IACnE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC;QAChC,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;QAC1D,SAAS,EAAE,MAAM,CAAC,QAAQ;KAC3B,CAAC,CAAA;IACF,OAAO,MAAM,MAAM,CAAC,OAAO,CAAS;QAClC,IAAI,EAAE,0BAA0B,KAAK,CAAC,QAAQ,EAAE,EAAE;QAClD,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Fetches the Turnkey parent (base) organization ID from the backend.
3
+ *
4
+ * Stamp-login payloads must be signed against this org — the backend relays the
5
+ * stamp under the parent org and derives the sub-org from the credential. The
6
+ * SDK fetches it (rather than hardcoding) so it works across environments
7
+ * (prod/staging/local) without a per-env override.
8
+ *
9
+ * Corresponds to `GET /api/v1/server-info/parent-org-id`.
10
+ */
11
+ export async function getParentOrgId(client) {
12
+ return await client.request({
13
+ path: 'server-info/parent-org-id',
14
+ method: 'GET',
15
+ });
16
+ }
17
+ //# sourceMappingURL=getParentOrgId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getParentOrgId.js","sourceRoot":"","sources":["../../../../src/actions/auth/getParentOrgId.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc;IAEd,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,2BAA2B;QACjC,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;AACJ,CAAC"}
@@ -1,5 +1,10 @@
1
+ import { canonicalizeEx } from 'json-canonicalize';
1
2
  /**
2
- * Gets the current user information
3
+ * Gets the current user information.
4
+ *
5
+ * The whoami endpoint requires two stamps:
6
+ * 1. An inner stamp over the payload (for Turnkey verification) embedded in the body
7
+ * 2. An outer stamp over the full body (for KMS middleware) in the X-Stamp header
3
8
  *
4
9
  * @param client - The ZeroDev Wallet client
5
10
  * @param params - The parameters for the whoami request
@@ -9,20 +14,37 @@
9
14
  * ```ts
10
15
  * const userInfo = await getWhoami(client, {
11
16
  * organizationId: 'org_123',
12
- * projectId: 'proj_456'
17
+ * projectId: 'proj_456',
18
+ * token: 'session_token',
13
19
  * });
14
20
  * console.log(userInfo.userId); // 'user_789'
15
21
  * ```
16
22
  */
17
23
  export async function getWhoami(client, params) {
18
- const { organizationId, projectId } = params;
24
+ const { organizationId, projectId, token } = params;
25
+ // Step 1: Inner stamp over the payload (for Turnkey verification)
26
+ const innerBody = { organizationId };
27
+ const innerBodyString = canonicalizeEx(innerBody);
28
+ const innerStamp = await client.apiKeyStamper.stamp(innerBodyString);
29
+ // Step 2: Build full body with inner stamp embedded
30
+ const fullBody = {
31
+ ...innerBody,
32
+ stamp: {
33
+ stampHeaderName: innerStamp.stampHeaderName,
34
+ stampHeaderValue: innerStamp.stampHeaderValue,
35
+ },
36
+ };
37
+ // Step 3: Outer stamp over full body (for KMS middleware)
38
+ const fullBodyString = canonicalizeEx(fullBody);
39
+ const outerStamp = await client.apiKeyStamper.stamp(fullBodyString);
19
40
  return await client.request({
20
41
  path: `${projectId}/whoami`,
21
42
  method: 'POST',
22
- body: {
23
- organizationId,
43
+ body: fullBody,
44
+ headers: {
45
+ [outerStamp.stampHeaderName]: outerStamp.stampHeaderValue,
46
+ ...(token && { Authorization: `Bearer ${token}` }),
24
47
  },
25
- stamp: true,
26
48
  });
27
49
  }
28
50
  //# sourceMappingURL=getWhoami.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getWhoami.js","sourceRoot":"","sources":["../../../../src/actions/auth/getWhoami.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,MAA2B;IAE3B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAE5C,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,SAAS;QAC3B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,cAAc;SACf;QACD,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getWhoami.js","sourceRoot":"","sources":["../../../../src/actions/auth/getWhoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAuBlD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,MAA2B;IAE3B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEnD,kEAAkE;IAClE,MAAM,SAAS,GAAG,EAAE,cAAc,EAAE,CAAA;IACpC,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAEpE,oDAAoD;IACpD,MAAM,QAAQ,GAAG;QACf,GAAG,SAAS;QACZ,KAAK,EAAE;YACL,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;SAC9C;KACF,CAAA;IAED,0DAA0D;IAC1D,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAEnE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,SAAS;QAC3B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,gBAAgB;YACzD,GAAG,CAAC,KAAK,IAAI,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;SACnD;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,6 +1,9 @@
1
1
  export { authenticateWithEmail, } from './authenticateWithEmail.js';
2
2
  export { authenticateWithOAuth, } from './authenticateWithOAuth.js';
3
- export { getUserEmail, } from './getUserEmail.js';
3
+ export { getAuthenticators, } from './getAuthenticators.js';
4
+ export { getAuthProxyConfigId, } from './getAuthProxyConfigId.js';
5
+ export { getOAuthLoginUrl, } from './getOAuthLoginUrl.js';
6
+ export { getParentOrgId, } from './getParentOrgId.js';
4
7
  export { getWhoami, } from './getWhoami.js';
5
8
  export { loginWithOTP, } from './loginWithOTP.js';
6
9
  export { loginWithStamp, } from './loginWithStamp.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,GAEtB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAGL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAIL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAKL,iBAAiB,GAGlB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAEL,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAGL,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAEL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAGL,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAIL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA"}
@@ -29,20 +29,23 @@ export async function loginWithStamp(client, params) {
29
29
  type: 'ACTIVITY_TYPE_STAMP_LOGIN',
30
30
  });
31
31
  let stamp;
32
- if (stampWith === 'indexedDb') {
33
- stamp = await client.indexedDbStamper.stamp(stampPayload);
32
+ if (stampWith === 'apiKey') {
33
+ stamp = await client.apiKeyStamper.stamp(stampPayload);
34
34
  }
35
- else if (stampWith === 'webauthn') {
36
- stamp = await client.webauthnStamper.stamp(stampPayload);
35
+ else if (stampWith === 'passkey') {
36
+ stamp = await client.passkeyStamper.stamp(stampPayload);
37
37
  }
38
38
  else {
39
- stamp = await client.indexedDbStamper.stamp(stampPayload);
39
+ stamp = await client.apiKeyStamper.stamp(stampPayload);
40
40
  }
41
41
  return client.request({
42
42
  path: `${projectId}/auth/login/stamp`,
43
43
  method: 'POST',
44
+ // The sub-org id is intentionally not sent: the backend derives it from
45
+ // the stamped credential. `organizationId` (the parent org) is only
46
+ // signed into `stampPayload` above so the stamp matches the body the
47
+ // backend relays to Turnkey — it is not part of the wire request.
44
48
  body: {
45
- subOrganizationId: organizationId,
46
49
  targetPublicKey,
47
50
  timestamp: timestampIso,
48
51
  stamp,
@@ -1 +1 @@
1
- {"version":3,"file":"loginWithStamp.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithStamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAyBlD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAgC;IAEhC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAExE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC9B,MAAM,iBAAiB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAA;IAExD,MAAM,YAAY,GAAG,cAAc,CAAC;QAClC,cAAc;QACd,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;SAC3B;QACD,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,2BAA2B;KAClC,CAAC,CAAA;IACF,IAAI,KAAY,CAAA;IAChB,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC3D,CAAC;SAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,KAAK,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1D,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,iBAAiB,EAAE,cAAc;YACjC,eAAe;YACf,SAAS,EAAE,YAAY;YACvB,KAAK;SACN;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"loginWithStamp.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithStamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAqBlD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAgC;IAEhC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAExE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC9B,MAAM,iBAAiB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAA;IAExD,MAAM,YAAY,GAAG,cAAc,CAAC;QAClC,cAAc;QACd,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;SAC3B;QACD,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,2BAA2B;KAClC,CAAC,CAAA;IACF,IAAI,KAAY,CAAA;IAChB,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,MAAM,EAAE,MAAM;QACd,wEAAwE;QACxE,oEAAoE;QACpE,qEAAqE;QACrE,kEAAkE;QAClE,IAAI,EAAE;YACJ,eAAe;YACf,SAAS,EAAE,YAAY;YACvB,KAAK;SACN;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -2,6 +2,10 @@
2
2
  * Initiates OTP (One-Time Password) authentication
3
3
  * This will send an OTP code to the specified contact method
4
4
  *
5
+ * OTP code length/format and, when enabled, the magic-link URL template are
6
+ * configured per-project on the backend (`wallet.otp_configs`). The client no
7
+ * longer sends customization fields — they are ignored server-side.
8
+ *
5
9
  * @param client - The ZeroDev Wallet client
6
10
  * @param params - The parameters for OTP initiation
7
11
  * @returns The result including otpId needed for verification
@@ -21,14 +25,13 @@
21
25
  * ```
22
26
  */
23
27
  export async function registerWithOTP(client, params) {
24
- const { email, contact, projectId, emailCustomization } = params;
28
+ const { email, contact, projectId } = params;
25
29
  return await client.request({
26
30
  path: `${projectId}/auth/init/otp`,
27
31
  method: 'POST',
28
32
  body: {
29
33
  email,
30
34
  contact,
31
- emailCustomization,
32
35
  },
33
36
  });
34
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registerWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithOTP.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAA;IAEhE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,gBAAgB;QAClC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,OAAO;YACP,kBAAkB;SACnB;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"registerWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithOTP.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAE5C,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,gBAAgB;QAClC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,OAAO;SACR;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -8,7 +8,6 @@
8
8
  * @example
9
9
  * ```ts
10
10
  * const result = await registerWithPasskey(client, {
11
- * email: 'user@example.com',
12
11
  * projectId: 'proj_456',
13
12
  * challenge: 'challenge',
14
13
  * attestation: {
@@ -21,12 +20,11 @@
21
20
  * ```
22
21
  */
23
22
  export async function registerWithPasskey(client, params) {
24
- const { email, projectId, challenge, attestation, encodedPublicKey } = params;
23
+ const { projectId, challenge, attestation, encodedPublicKey } = params;
25
24
  return client.request({
26
25
  path: `${projectId}/auth/register/passkey`,
27
26
  method: 'POST',
28
27
  body: {
29
- email,
30
28
  attestation,
31
29
  challenge,
32
30
  encodedPublicKey,
@@ -1 +1 @@
1
- {"version":3,"file":"registerWithPasskey.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithPasskey.ts"],"names":[],"mappings":"AAiCA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,MAAqC;IAErC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAA;IAE7E,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,wBAAwB;QAC1C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,WAAW;YACX,SAAS;YACT,gBAAgB;SACjB;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"registerWithPasskey.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithPasskey.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,MAAqC;IAErC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAA;IAEtE,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,wBAAwB;QAC1C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,WAAW;YACX,SAAS;YACT,gBAAgB;SACjB;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  // Auth actions
2
- export { authenticateWithEmail, authenticateWithOAuth, getUserEmail, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, } from './auth/index.js';
2
+ export { authenticateWithEmail, authenticateWithOAuth, getAuthenticators, getAuthProxyConfigId, getOAuthLoginUrl, getParentOrgId, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, } from './auth/index.js';
3
3
  // Wallet actions
4
- export { getUserWallet, signRawPayload, signTransaction, } from './wallet/index.js';
4
+ export { getUserWallet, sign7702Authorization, signMessage, signTransaction, signTypedDataV4, signUserOperation, } from './wallet/index.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAKL,qBAAqB,EACrB,qBAAqB,EAMrB,YAAY,EACZ,SAAS,EAGT,YAAY,EAMZ,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,iBAAiB;AACjB,OAAO,EAGL,aAAa,EAKb,cAAc,EACd,eAAe,GAChB,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAML,qBAAqB,EACrB,qBAAqB,EAUrB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,SAAS,EAGT,YAAY,EAQZ,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,iBAAiB;AACjB,OAAO,EAGL,aAAa,EAWb,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAA"}
@@ -15,17 +15,17 @@
15
15
  * ```
16
16
  */
17
17
  export async function getUserWallet(client, params) {
18
- const { organizationId, projectId, token } = params;
18
+ const { projectId, token } = params;
19
+ // GET behind StampCheckUser: user is resolved from the stamped credential
20
+ // (+ session JWT); no body sent. The stamp signs the X-Timestamp value.
19
21
  return await client.request({
20
22
  path: `${projectId}/user-wallet`,
21
- body: {
22
- organizationId,
23
- },
23
+ method: 'GET',
24
24
  headers: {
25
25
  Authorization: `Bearer ${token}`,
26
26
  },
27
27
  stamp: true,
28
- stampPostion: 'headers',
28
+ stampPostion: 'timestamp',
29
29
  });
30
30
  }
31
31
  //# sourceMappingURL=getUserWallet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUserWallet.js","sourceRoot":"","sources":["../../../../src/actions/wallet/getUserWallet.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,MAA+B;IAE/B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEnD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,cAAc;QAChC,IAAI,EAAE;YACJ,cAAc;SACf;QACD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,SAAS;KACxB,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"getUserWallet.js","sourceRoot":"","sources":["../../../../src/actions/wallet/getUserWallet.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,MAA+B;IAE/B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEnC,0EAA0E;IAC1E,wEAAwE;IACxE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,cAAc;QAChC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,WAAW;KAC1B,CAAC,CAAA;AACJ,CAAC"}
@@ -1,4 +1,7 @@
1
1
  export { getUserWallet, } from './getUserWallet.js';
2
- export { signRawPayload, } from './signRawPayload.js';
2
+ export { sign7702Authorization, } from './sign7702Authorization.js';
3
+ export { signMessage, } from './signMessage.js';
3
4
  export { signTransaction, } from './signTransaction.js';
5
+ export { signTypedDataV4, } from './signTypedDataV4.js';
6
+ export { signUserOperation, } from './signUserOperation.js';
4
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/wallet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,GACd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAGL,eAAe,GAChB,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/wallet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,GACd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAGL,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAGL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAGL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAGL,iBAAiB,GAClB,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { buildTurnkeyPayload, sendSigningRequest } from './signingUtils.js';
2
+ export async function sign7702Authorization(client, params) {
3
+ const { organizationId, projectId, token, address, unsignedTransaction, hashedAuthorization, } = params;
4
+ const turnkeyPayload = buildTurnkeyPayload(organizationId, address, hashedAuthorization);
5
+ return sendSigningRequest(client, {
6
+ projectId,
7
+ token,
8
+ path: 'sign/7702-authorization',
9
+ turnkeyPayload,
10
+ bodyFields: { unsignedTransaction },
11
+ });
12
+ }
13
+ //# sourceMappingURL=sign7702Authorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign7702Authorization.js","sourceRoot":"","sources":["../../../../src/actions/wallet/sign7702Authorization.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAmB3E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EACJ,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,mBAAmB,EACnB,mBAAmB,GACpB,GAAG,MAAM,CAAA;IAEV,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,mBAAmB,CACpB,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,yBAAyB;QAC/B,cAAc;QACd,UAAU,EAAE,EAAE,mBAAmB,EAAE;KACpC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { buildTurnkeyPayload, computeMessagePayloadHash, sendSigningRequest, } from './signingUtils.js';
2
+ export async function signMessage(client, params) {
3
+ const { organizationId, projectId, token, address, message, encoding } = params;
4
+ const payloadHash = computeMessagePayloadHash(message, encoding);
5
+ const turnkeyPayload = buildTurnkeyPayload(organizationId, address, payloadHash);
6
+ return sendSigningRequest(client, {
7
+ projectId,
8
+ token,
9
+ path: 'sign/message',
10
+ turnkeyPayload,
11
+ bodyFields: { message, encoding },
12
+ });
13
+ }
14
+ //# sourceMappingURL=signMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signMessage.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAmB1B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,MAA6B;IAE7B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GACpE,MAAM,CAAA;IAER,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAChE,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,cAAc;QACpB,cAAc;QACd,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;KAClC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,41 +1,14 @@
1
- /**
2
- * Signs a raw transaction with the user's wallet
3
- *
4
- * @param client - The ZeroDev Wallet client
5
- * @param params - The parameters for signing
6
- * @returns The signature
7
- *
8
- * @example
9
- * ```ts
10
- * const result = await signTransaction(client, {
11
- * organizationId: 'org_123',
12
- * projectId: 'proj_456',
13
- * address: '0x123...',
14
- * unsignedTransaction: 'abc123...',
15
- * });
16
- * console.log(result.signature); // '0x...'
17
- * ```
18
- */
1
+ import { buildTurnkeyPayload, computeDataPayloadHash, sendSigningRequest, } from './signingUtils.js';
19
2
  export async function signTransaction(client, params) {
20
3
  const { organizationId, projectId, token, address, unsignedTransaction } = params;
21
- const { signature } = await client.request({
22
- path: `${projectId}/sign/transaction`,
23
- body: {
24
- type: 'ACTIVITY_TYPE_SIGN_TRANSACTION_V2',
25
- timestampMs: Date.now().toString(),
26
- organizationId,
27
- parameters: {
28
- signWith: address,
29
- type: 'TRANSACTION_TYPE_ETHEREUM',
30
- unsignedTransaction,
31
- },
32
- },
33
- headers: {
34
- Authorization: `Bearer ${token}`,
35
- },
36
- stamp: true,
37
- stampPostion: 'headers',
4
+ const payloadHash = computeDataPayloadHash(unsignedTransaction, 'hex');
5
+ const turnkeyPayload = buildTurnkeyPayload(organizationId, address, payloadHash);
6
+ return sendSigningRequest(client, {
7
+ projectId,
8
+ token,
9
+ path: 'sign/transaction',
10
+ turnkeyPayload,
11
+ bodyFields: { unsignedTransaction },
38
12
  });
39
- return `0x${signature}`;
40
13
  }
41
14
  //# sourceMappingURL=signTransaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTransaction.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,GACtE,MAAM,CAAA;IAER,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,mCAAmC;YACzC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAClC,cAAc;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,2BAA2B;gBACjC,mBAAmB;aACpB;SACF;QACD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,SAAS;KACxB,CAAC,CAAA;IAEF,OAAO,KAAK,SAAS,EAAS,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAiB1B,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,GACtE,MAAM,CAAA;IAER,MAAM,WAAW,GAAG,sBAAsB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,kBAAkB;QACxB,cAAc;QACd,UAAU,EAAE,EAAE,mBAAmB,EAAE;KACpC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { buildTurnkeyPayload, sendSigningRequest } from './signingUtils.js';
2
+ export async function signTypedDataV4(client, params) {
3
+ const { organizationId, projectId, token, address, unsignedTypedDataV4, encoding, typedDataHash, } = params;
4
+ const payloadHash = typedDataHash;
5
+ const turnkeyPayload = buildTurnkeyPayload(organizationId, address, payloadHash);
6
+ return sendSigningRequest(client, {
7
+ projectId,
8
+ token,
9
+ path: 'sign/typed-data-v4',
10
+ turnkeyPayload,
11
+ bodyFields: { unsignedTypedDataV4, encoding },
12
+ });
13
+ }
14
+ //# sourceMappingURL=signTypedDataV4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signTypedDataV4.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTypedDataV4.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAqB3E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EACJ,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,mBAAmB,EACnB,QAAQ,EACR,aAAa,GACd,GAAG,MAAM,CAAA;IAEV,MAAM,WAAW,GAAG,aAAa,CAAA;IACjC,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,oBAAoB;QAC1B,cAAc;QACd,UAAU,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE;KAC9C,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { buildTurnkeyPayload, computeDataPayloadHash, sendSigningRequest, } from './signingUtils.js';
2
+ export async function signUserOperation(client, params) {
3
+ const { organizationId, projectId, token, address, unsignedUserOperation, chainId, encoding, } = params;
4
+ const payloadHash = computeDataPayloadHash(unsignedUserOperation, encoding);
5
+ const turnkeyPayload = buildTurnkeyPayload(organizationId, address, payloadHash);
6
+ return sendSigningRequest(client, {
7
+ projectId,
8
+ token,
9
+ path: 'sign/user-operation',
10
+ turnkeyPayload,
11
+ bodyFields: { unsignedUserOperation, chainId, encoding },
12
+ });
13
+ }
14
+ //# sourceMappingURL=signUserOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signUserOperation.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signUserOperation.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAqB1B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,MAAmC;IAEnC,MAAM,EACJ,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,qBAAqB,EACrB,OAAO,EACP,QAAQ,GACT,GAAG,MAAM,CAAA;IAEV,MAAM,WAAW,GAAG,sBAAsB,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAA;IAC3E,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,qBAAqB;QAC3B,cAAc;QACd,UAAU,EAAE,EAAE,qBAAqB,EAAE,OAAO,EAAE,QAAQ,EAAE;KACzD,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { canonicalizeEx } from 'json-canonicalize';
2
+ import { hashMessage, keccak256, toHex } from 'viem';
3
+ export function buildTurnkeyPayload(organizationId, address, payloadHash) {
4
+ return {
5
+ type: 'ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2',
6
+ timestampMs: Date.now().toString(),
7
+ organizationId,
8
+ parameters: {
9
+ signWith: address,
10
+ payload: payloadHash,
11
+ encoding: 'PAYLOAD_ENCODING_HEXADECIMAL',
12
+ hashFunction: 'HASH_FUNCTION_NO_OP',
13
+ },
14
+ };
15
+ }
16
+ export async function sendSigningRequest(client, params) {
17
+ const { projectId, token, path, turnkeyPayload, bodyFields } = params;
18
+ // Inner stamp over the Turnkey payload (for Turnkey verification)
19
+ const innerBodyString = canonicalizeEx(turnkeyPayload);
20
+ const innerStamp = await client.apiKeyStamper.stamp(innerBodyString);
21
+ // Build full body with inner stamp embedded
22
+ const fullBody = {
23
+ ...bodyFields,
24
+ turnkeyPayload,
25
+ stampHeader: {
26
+ stampHeaderName: innerStamp.stampHeaderName,
27
+ stampHeaderValue: innerStamp.stampHeaderValue,
28
+ },
29
+ };
30
+ // Outer stamp over full body (for KMS middleware)
31
+ const fullBodyString = canonicalizeEx(fullBody);
32
+ const outerStamp = await client.apiKeyStamper.stamp(fullBodyString);
33
+ const { signature } = await client.request({
34
+ path: `${projectId}/${path}`,
35
+ method: 'POST',
36
+ body: fullBody,
37
+ headers: {
38
+ [outerStamp.stampHeaderName]: outerStamp.stampHeaderValue,
39
+ Authorization: `Bearer ${token}`,
40
+ },
41
+ });
42
+ return (signature.startsWith('0x') ? signature : `0x${signature}`);
43
+ }
44
+ /**
45
+ * Compute payload hash for message signing (EIP-191).
46
+ * Uses viem's hashMessage directly to guarantee correct EIP-191 hashing.
47
+ */
48
+ export function computeMessagePayloadHash(message, encoding) {
49
+ if (encoding === 'utf8') {
50
+ return hashMessage(message).slice(2);
51
+ }
52
+ const hex = message.replace(/^0x/, '');
53
+ return hashMessage({ raw: `0x${hex}` }).slice(2);
54
+ }
55
+ /**
56
+ * Compute payload hash for data signing (transaction, user operation).
57
+ * Hashes the raw decoded bytes: keccak256(hexDecode(hexData))
58
+ */
59
+ export function computeDataPayloadHash(data, encoding) {
60
+ let hexData;
61
+ if (encoding === 'utf8') {
62
+ hexData = toHex(data).slice(2);
63
+ }
64
+ else {
65
+ hexData = data.replace(/^0x/, '');
66
+ }
67
+ return keccak256(`0x${hexData}`).slice(2);
68
+ }
69
+ //# sourceMappingURL=signingUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signingUtils.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAepD,MAAM,UAAU,mBAAmB,CACjC,cAAsB,EACtB,OAAY,EACZ,WAAmB;IAEnB,OAAO;QACL,IAAI,EAAE,mCAAmC;QACzC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,cAAc;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,8BAA8B;YACxC,YAAY,EAAE,qBAAqB;SACpC;KACF,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,MAMC;IAED,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IAErE,kEAAkE;IAClE,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;IACtD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAEpE,4CAA4C;IAC5C,MAAM,QAAQ,GAAG;QACf,GAAG,UAAU;QACb,cAAc;QACd,WAAW,EAAE;YACX,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;SAC9C;KACF,CAAA;IAED,kDAAkD;IAClD,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAEnE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE;QAC5B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,gBAAgB;YACzD,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;KACF,CAAC,CAAA;IAEF,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAQ,CAAA;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,QAAwB;IAExB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACtC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,EAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,QAAwB;IAExB,IAAI,OAAe,CAAA;IACnB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,OAAO,EAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC"}