@zerodev/wallet-core 0.0.1-alpha.3

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 (250) hide show
  1. package/README.md +272 -0
  2. package/dist/_cjs/actions/auth/authenticateWithEmail.js +17 -0
  3. package/dist/_cjs/actions/auth/authenticateWithEmail.js.map +1 -0
  4. package/dist/_cjs/actions/auth/authenticateWithOAuth.js +17 -0
  5. package/dist/_cjs/actions/auth/authenticateWithOAuth.js.map +1 -0
  6. package/dist/_cjs/actions/auth/getWhoami.js +15 -0
  7. package/dist/_cjs/actions/auth/getWhoami.js.map +1 -0
  8. package/dist/_cjs/actions/auth/index.js +18 -0
  9. package/dist/_cjs/actions/auth/index.js.map +1 -0
  10. package/dist/_cjs/actions/auth/loginWithOTP.js +17 -0
  11. package/dist/_cjs/actions/auth/loginWithOTP.js.map +1 -0
  12. package/dist/_cjs/actions/auth/loginWithStamp.js +29 -0
  13. package/dist/_cjs/actions/auth/loginWithStamp.js.map +1 -0
  14. package/dist/_cjs/actions/auth/registerWithOTP.js +17 -0
  15. package/dist/_cjs/actions/auth/registerWithOTP.js.map +1 -0
  16. package/dist/_cjs/actions/auth/registerWithPasskey.js +17 -0
  17. package/dist/_cjs/actions/auth/registerWithPasskey.js.map +1 -0
  18. package/dist/_cjs/actions/index.js +15 -0
  19. package/dist/_cjs/actions/index.js.map +1 -0
  20. package/dist/_cjs/actions/wallet/getUserWallet.js +13 -0
  21. package/dist/_cjs/actions/wallet/getUserWallet.js.map +1 -0
  22. package/dist/_cjs/actions/wallet/index.js +10 -0
  23. package/dist/_cjs/actions/wallet/index.js.map +1 -0
  24. package/dist/_cjs/actions/wallet/signRawPayload.js +26 -0
  25. package/dist/_cjs/actions/wallet/signRawPayload.js.map +1 -0
  26. package/dist/_cjs/actions/wallet/signTransaction.js +25 -0
  27. package/dist/_cjs/actions/wallet/signTransaction.js.map +1 -0
  28. package/dist/_cjs/adapters/viem.js +89 -0
  29. package/dist/_cjs/adapters/viem.js.map +1 -0
  30. package/dist/_cjs/client/createClient.js +45 -0
  31. package/dist/_cjs/client/createClient.js.map +1 -0
  32. package/dist/_cjs/client/decorators/client.js +21 -0
  33. package/dist/_cjs/client/decorators/client.js.map +1 -0
  34. package/dist/_cjs/client/index.js +9 -0
  35. package/dist/_cjs/client/index.js.map +1 -0
  36. package/dist/_cjs/client/transports/createTransport.js +29 -0
  37. package/dist/_cjs/client/transports/createTransport.js.map +1 -0
  38. package/dist/_cjs/client/transports/rest.js +86 -0
  39. package/dist/_cjs/client/transports/rest.js.map +1 -0
  40. package/dist/_cjs/client/types.js +3 -0
  41. package/dist/_cjs/client/types.js.map +1 -0
  42. package/dist/_cjs/constants.js +9 -0
  43. package/dist/_cjs/constants.js.map +1 -0
  44. package/dist/_cjs/core/createZeroDevWallet.js +330 -0
  45. package/dist/_cjs/core/createZeroDevWallet.js.map +1 -0
  46. package/dist/_cjs/errors/request.js +61 -0
  47. package/dist/_cjs/errors/request.js.map +1 -0
  48. package/dist/_cjs/index.js +31 -0
  49. package/dist/_cjs/index.js.map +1 -0
  50. package/dist/_cjs/package.json +1 -0
  51. package/dist/_cjs/polyfills/window.js +26 -0
  52. package/dist/_cjs/polyfills/window.js.map +1 -0
  53. package/dist/_cjs/stampers/iframeStamper.js +32 -0
  54. package/dist/_cjs/stampers/iframeStamper.js.map +1 -0
  55. package/dist/_cjs/stampers/index.js +10 -0
  56. package/dist/_cjs/stampers/index.js.map +1 -0
  57. package/dist/_cjs/stampers/indexedDbStamper.js +23 -0
  58. package/dist/_cjs/stampers/indexedDbStamper.js.map +1 -0
  59. package/dist/_cjs/stampers/types.js +3 -0
  60. package/dist/_cjs/stampers/types.js.map +1 -0
  61. package/dist/_cjs/stampers/webauthnStamper.js +17 -0
  62. package/dist/_cjs/stampers/webauthnStamper.js.map +1 -0
  63. package/dist/_cjs/storage/adapters.js +18 -0
  64. package/dist/_cjs/storage/adapters.js.map +1 -0
  65. package/dist/_cjs/storage/manager.js +108 -0
  66. package/dist/_cjs/storage/manager.js.map +1 -0
  67. package/dist/_cjs/types/session.js +9 -0
  68. package/dist/_cjs/types/session.js.map +1 -0
  69. package/dist/_cjs/utils/exportWallet.js +70 -0
  70. package/dist/_cjs/utils/exportWallet.js.map +1 -0
  71. package/dist/_cjs/utils/utils.js +75 -0
  72. package/dist/_cjs/utils/utils.js.map +1 -0
  73. package/dist/_esm/actions/auth/authenticateWithEmail.js +18 -0
  74. package/dist/_esm/actions/auth/authenticateWithEmail.js.map +1 -0
  75. package/dist/_esm/actions/auth/authenticateWithOAuth.js +31 -0
  76. package/dist/_esm/actions/auth/authenticateWithOAuth.js.map +1 -0
  77. package/dist/_esm/actions/auth/getWhoami.js +28 -0
  78. package/dist/_esm/actions/auth/getWhoami.js.map +1 -0
  79. package/dist/_esm/actions/auth/index.js +8 -0
  80. package/dist/_esm/actions/auth/index.js.map +1 -0
  81. package/dist/_esm/actions/auth/loginWithOTP.js +36 -0
  82. package/dist/_esm/actions/auth/loginWithOTP.js.map +1 -0
  83. package/dist/_esm/actions/auth/loginWithStamp.js +42 -0
  84. package/dist/_esm/actions/auth/loginWithStamp.js.map +1 -0
  85. package/dist/_esm/actions/auth/registerWithOTP.js +36 -0
  86. package/dist/_esm/actions/auth/registerWithOTP.js.map +1 -0
  87. package/dist/_esm/actions/auth/registerWithPasskey.js +36 -0
  88. package/dist/_esm/actions/auth/registerWithPasskey.js.map +1 -0
  89. package/dist/_esm/actions/index.js +5 -0
  90. package/dist/_esm/actions/index.js.map +1 -0
  91. package/dist/_esm/actions/wallet/getUserWallet.js +26 -0
  92. package/dist/_esm/actions/wallet/getUserWallet.js.map +1 -0
  93. package/dist/_esm/actions/wallet/index.js +4 -0
  94. package/dist/_esm/actions/wallet/index.js.map +1 -0
  95. package/dist/_esm/actions/wallet/signRawPayload.js +41 -0
  96. package/dist/_esm/actions/wallet/signRawPayload.js.map +1 -0
  97. package/dist/_esm/actions/wallet/signTransaction.js +40 -0
  98. package/dist/_esm/actions/wallet/signTransaction.js.map +1 -0
  99. package/dist/_esm/adapters/viem.js +91 -0
  100. package/dist/_esm/adapters/viem.js.map +1 -0
  101. package/dist/_esm/client/createClient.js +56 -0
  102. package/dist/_esm/client/createClient.js.map +1 -0
  103. package/dist/_esm/client/decorators/client.js +42 -0
  104. package/dist/_esm/client/decorators/client.js.map +1 -0
  105. package/dist/_esm/client/index.js +3 -0
  106. package/dist/_esm/client/index.js.map +1 -0
  107. package/dist/_esm/client/transports/createTransport.js +31 -0
  108. package/dist/_esm/client/transports/createTransport.js.map +1 -0
  109. package/dist/_esm/client/transports/rest.js +85 -0
  110. package/dist/_esm/client/transports/rest.js.map +1 -0
  111. package/dist/_esm/client/types.js +2 -0
  112. package/dist/_esm/client/types.js.map +1 -0
  113. package/dist/_esm/constants.js +6 -0
  114. package/dist/_esm/constants.js.map +1 -0
  115. package/dist/_esm/core/createZeroDevWallet.js +332 -0
  116. package/dist/_esm/core/createZeroDevWallet.js.map +1 -0
  117. package/dist/_esm/errors/request.js +60 -0
  118. package/dist/_esm/errors/request.js.map +1 -0
  119. package/dist/_esm/index.js +20 -0
  120. package/dist/_esm/index.js.map +1 -0
  121. package/dist/_esm/package.json +1 -0
  122. package/dist/_esm/polyfills/window.js +24 -0
  123. package/dist/_esm/polyfills/window.js.map +1 -0
  124. package/dist/_esm/stampers/iframeStamper.js +29 -0
  125. package/dist/_esm/stampers/iframeStamper.js.map +1 -0
  126. package/dist/_esm/stampers/index.js +4 -0
  127. package/dist/_esm/stampers/index.js.map +1 -0
  128. package/dist/_esm/stampers/indexedDbStamper.js +20 -0
  129. package/dist/_esm/stampers/indexedDbStamper.js.map +1 -0
  130. package/dist/_esm/stampers/types.js +2 -0
  131. package/dist/_esm/stampers/types.js.map +1 -0
  132. package/dist/_esm/stampers/webauthnStamper.js +15 -0
  133. package/dist/_esm/stampers/webauthnStamper.js.map +1 -0
  134. package/dist/_esm/storage/adapters.js +15 -0
  135. package/dist/_esm/storage/adapters.js.map +1 -0
  136. package/dist/_esm/storage/manager.js +118 -0
  137. package/dist/_esm/storage/manager.js.map +1 -0
  138. package/dist/_esm/types/session.js +6 -0
  139. package/dist/_esm/types/session.js.map +1 -0
  140. package/dist/_esm/utils/exportWallet.js +98 -0
  141. package/dist/_esm/utils/exportWallet.js.map +1 -0
  142. package/dist/_esm/utils/utils.js +105 -0
  143. package/dist/_esm/utils/utils.js.map +1 -0
  144. package/dist/_types/actions/auth/authenticateWithEmail.d.ts +33 -0
  145. package/dist/_types/actions/auth/authenticateWithEmail.d.ts.map +1 -0
  146. package/dist/_types/actions/auth/authenticateWithOAuth.d.ts +40 -0
  147. package/dist/_types/actions/auth/authenticateWithOAuth.d.ts.map +1 -0
  148. package/dist/_types/actions/auth/getWhoami.d.ts +35 -0
  149. package/dist/_types/actions/auth/getWhoami.d.ts.map +1 -0
  150. package/dist/_types/actions/auth/index.d.ts +8 -0
  151. package/dist/_types/actions/auth/index.d.ts.map +1 -0
  152. package/dist/_types/actions/auth/loginWithOTP.d.ts +41 -0
  153. package/dist/_types/actions/auth/loginWithOTP.d.ts.map +1 -0
  154. package/dist/_types/actions/auth/loginWithStamp.d.ts +35 -0
  155. package/dist/_types/actions/auth/loginWithStamp.d.ts.map +1 -0
  156. package/dist/_types/actions/auth/registerWithOTP.d.ts +52 -0
  157. package/dist/_types/actions/auth/registerWithOTP.d.ts.map +1 -0
  158. package/dist/_types/actions/auth/registerWithPasskey.d.ts +53 -0
  159. package/dist/_types/actions/auth/registerWithPasskey.d.ts.map +1 -0
  160. package/dist/_types/actions/index.d.ts +3 -0
  161. package/dist/_types/actions/index.d.ts.map +1 -0
  162. package/dist/_types/actions/wallet/getUserWallet.d.ts +32 -0
  163. package/dist/_types/actions/wallet/getUserWallet.d.ts.map +1 -0
  164. package/dist/_types/actions/wallet/index.d.ts +4 -0
  165. package/dist/_types/actions/wallet/index.d.ts.map +1 -0
  166. package/dist/_types/actions/wallet/signRawPayload.d.ts +37 -0
  167. package/dist/_types/actions/wallet/signRawPayload.d.ts.map +1 -0
  168. package/dist/_types/actions/wallet/signTransaction.d.ts +33 -0
  169. package/dist/_types/actions/wallet/signTransaction.d.ts.map +1 -0
  170. package/dist/_types/adapters/viem.d.ts +9 -0
  171. package/dist/_types/adapters/viem.d.ts.map +1 -0
  172. package/dist/_types/client/createClient.d.ts +18 -0
  173. package/dist/_types/client/createClient.d.ts.map +1 -0
  174. package/dist/_types/client/decorators/client.d.ts +73 -0
  175. package/dist/_types/client/decorators/client.d.ts.map +1 -0
  176. package/dist/_types/client/index.d.ts +4 -0
  177. package/dist/_types/client/index.d.ts.map +1 -0
  178. package/dist/_types/client/transports/createTransport.d.ts +17 -0
  179. package/dist/_types/client/transports/createTransport.d.ts.map +1 -0
  180. package/dist/_types/client/transports/rest.d.ts +30 -0
  181. package/dist/_types/client/transports/rest.d.ts.map +1 -0
  182. package/dist/_types/client/types.d.ts +60 -0
  183. package/dist/_types/client/types.d.ts.map +1 -0
  184. package/dist/_types/constants.d.ts +6 -0
  185. package/dist/_types/constants.d.ts.map +1 -0
  186. package/dist/_types/core/createZeroDevWallet.d.ts +55 -0
  187. package/dist/_types/core/createZeroDevWallet.d.ts.map +1 -0
  188. package/dist/_types/errors/request.d.ts +12 -0
  189. package/dist/_types/errors/request.d.ts.map +1 -0
  190. package/dist/_types/index.d.ts +17 -0
  191. package/dist/_types/index.d.ts.map +1 -0
  192. package/dist/_types/polyfills/window.d.ts +15 -0
  193. package/dist/_types/polyfills/window.d.ts.map +1 -0
  194. package/dist/_types/stampers/iframeStamper.d.ts +7 -0
  195. package/dist/_types/stampers/iframeStamper.d.ts.map +1 -0
  196. package/dist/_types/stampers/index.d.ts +5 -0
  197. package/dist/_types/stampers/index.d.ts.map +1 -0
  198. package/dist/_types/stampers/indexedDbStamper.d.ts +3 -0
  199. package/dist/_types/stampers/indexedDbStamper.d.ts.map +1 -0
  200. package/dist/_types/stampers/types.d.ts +23 -0
  201. package/dist/_types/stampers/types.d.ts.map +1 -0
  202. package/dist/_types/stampers/webauthnStamper.d.ts +5 -0
  203. package/dist/_types/stampers/webauthnStamper.d.ts.map +1 -0
  204. package/dist/_types/storage/adapters.d.ts +3 -0
  205. package/dist/_types/storage/adapters.d.ts.map +1 -0
  206. package/dist/_types/storage/manager.d.ts +19 -0
  207. package/dist/_types/storage/manager.d.ts.map +1 -0
  208. package/dist/_types/types/session.d.ts +17 -0
  209. package/dist/_types/types/session.d.ts.map +1 -0
  210. package/dist/_types/utils/exportWallet.d.ts +44 -0
  211. package/dist/_types/utils/exportWallet.d.ts.map +1 -0
  212. package/dist/_types/utils/utils.d.ts +52 -0
  213. package/dist/_types/utils/utils.d.ts.map +1 -0
  214. package/dist/tsconfig.build.tsbuildinfo +1 -0
  215. package/package.json +73 -0
  216. package/src/actions/auth/authenticateWithEmail.ts +52 -0
  217. package/src/actions/auth/authenticateWithOAuth.ts +58 -0
  218. package/src/actions/auth/getWhoami.ts +51 -0
  219. package/src/actions/auth/index.ts +40 -0
  220. package/src/actions/auth/loginWithOTP.ts +60 -0
  221. package/src/actions/auth/loginWithStamp.ts +68 -0
  222. package/src/actions/auth/registerWithOTP.ts +71 -0
  223. package/src/actions/auth/registerWithPasskey.ts +72 -0
  224. package/src/actions/index.ts +36 -0
  225. package/src/actions/wallet/getUserWallet.ts +46 -0
  226. package/src/actions/wallet/index.ts +17 -0
  227. package/src/actions/wallet/signRawPayload.ts +71 -0
  228. package/src/actions/wallet/signTransaction.ts +60 -0
  229. package/src/adapters/viem.ts +158 -0
  230. package/src/client/createClient.ts +95 -0
  231. package/src/client/decorators/client.ts +152 -0
  232. package/src/client/index.ts +12 -0
  233. package/src/client/transports/createTransport.ts +52 -0
  234. package/src/client/transports/rest.ts +121 -0
  235. package/src/client/types.ts +66 -0
  236. package/src/constants.ts +5 -0
  237. package/src/core/createZeroDevWallet.ts +477 -0
  238. package/src/errors/request.ts +36 -0
  239. package/src/index.ts +75 -0
  240. package/src/polyfills/window.ts +24 -0
  241. package/src/stampers/iframeStamper.ts +35 -0
  242. package/src/stampers/index.ts +8 -0
  243. package/src/stampers/indexedDbStamper.ts +22 -0
  244. package/src/stampers/types.ts +28 -0
  245. package/src/stampers/webauthnStamper.ts +21 -0
  246. package/src/storage/adapters.ts +20 -0
  247. package/src/storage/manager.ts +170 -0
  248. package/src/types/session.ts +18 -0
  249. package/src/utils/exportWallet.ts +124 -0
  250. package/src/utils/utils.ts +136 -0
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createStorageManager = createStorageManager;
4
+ const utils_js_1 = require("../utils/utils.js");
5
+ function createStorageManager(adapter) {
6
+ const ACTIVE_SESSION_KEY = '@zerodev/active_session';
7
+ const ALL_SESSIONS_KEY = '@zerodev/sessions';
8
+ const storeSession = async (sessionData, sessionKey) => {
9
+ await adapter.setItem(sessionKey, JSON.stringify(sessionData));
10
+ const sessionsStr = await adapter.getItem(ALL_SESSIONS_KEY);
11
+ const sessions = JSON.parse(sessionsStr || '[]');
12
+ if (!sessions.includes(sessionKey)) {
13
+ sessions.push(sessionKey);
14
+ await adapter.setItem(ALL_SESSIONS_KEY, JSON.stringify(sessions));
15
+ }
16
+ await adapter.setItem(ACTIVE_SESSION_KEY, sessionKey);
17
+ };
18
+ const getActiveSession = async () => {
19
+ const activeKey = await adapter.getItem(ACTIVE_SESSION_KEY);
20
+ if (!activeKey)
21
+ return undefined;
22
+ return getSession(activeKey);
23
+ };
24
+ const getActiveSessionKey = async () => {
25
+ const key = await adapter.getItem(ACTIVE_SESSION_KEY);
26
+ return key || undefined;
27
+ };
28
+ const getSession = async (sessionKey) => {
29
+ const sessionStr = await adapter.getItem(sessionKey);
30
+ if (!sessionStr)
31
+ return undefined;
32
+ try {
33
+ const session = JSON.parse(sessionStr);
34
+ if (session.expiry && (0, utils_js_1.normalizeTimestamp)(session.expiry) < Date.now()) {
35
+ await clearSession(sessionKey);
36
+ return undefined;
37
+ }
38
+ return session;
39
+ }
40
+ catch (_error) {
41
+ await clearSession(sessionKey);
42
+ return undefined;
43
+ }
44
+ };
45
+ const listSessionKeys = async () => {
46
+ const sessionsStr = await adapter.getItem(ALL_SESSIONS_KEY);
47
+ const sessionKeys = JSON.parse(sessionsStr || '[]');
48
+ const validKeys = [];
49
+ for (const key of sessionKeys) {
50
+ const exists = await adapter.getItem(key);
51
+ if (exists) {
52
+ validKeys.push(key);
53
+ }
54
+ }
55
+ if (validKeys.length !== sessionKeys.length) {
56
+ await adapter.setItem(ALL_SESSIONS_KEY, JSON.stringify(validKeys));
57
+ }
58
+ return validKeys;
59
+ };
60
+ const listSessions = async () => {
61
+ const sessionKeys = await listSessionKeys();
62
+ const sessions = [];
63
+ for (const key of sessionKeys) {
64
+ const session = await getSession(key);
65
+ if (session) {
66
+ sessions.push(session);
67
+ }
68
+ }
69
+ return sessions;
70
+ };
71
+ const setActiveSession = async (sessionKey) => {
72
+ const session = await getSession(sessionKey);
73
+ if (!session) {
74
+ throw new Error(`Session not found: ${sessionKey}`);
75
+ }
76
+ await adapter.setItem(ACTIVE_SESSION_KEY, sessionKey);
77
+ };
78
+ const clearSession = async (sessionKey) => {
79
+ await adapter.removeItem(sessionKey);
80
+ const sessions = await listSessionKeys();
81
+ const updated = sessions.filter((k) => k !== sessionKey);
82
+ await adapter.setItem(ALL_SESSIONS_KEY, JSON.stringify(updated));
83
+ const activeKey = await adapter.getItem(ACTIVE_SESSION_KEY);
84
+ if (activeKey === sessionKey) {
85
+ await adapter.removeItem(ACTIVE_SESSION_KEY);
86
+ }
87
+ };
88
+ const clearAllSessions = async () => {
89
+ const sessions = await listSessionKeys();
90
+ for (const key of sessions) {
91
+ await adapter.removeItem(key);
92
+ }
93
+ await adapter.removeItem(ALL_SESSIONS_KEY);
94
+ await adapter.removeItem(ACTIVE_SESSION_KEY);
95
+ };
96
+ return {
97
+ storeSession,
98
+ getActiveSession,
99
+ getActiveSessionKey,
100
+ getSession,
101
+ listSessionKeys,
102
+ listSessions,
103
+ setActiveSession,
104
+ clearSession,
105
+ clearAllSessions,
106
+ };
107
+ }
108
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/storage/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionType = void 0;
4
+ var SessionType;
5
+ (function (SessionType) {
6
+ SessionType["READ_ONLY"] = "SESSION_TYPE_READ_ONLY";
7
+ SessionType["READ_WRITE"] = "SESSION_TYPE_READ_WRITE";
8
+ })(SessionType || (exports.SessionType = SessionType = {}));
9
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/types/session.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,mDAAoC,CAAA;IACpC,qDAAsC,CAAA;AACxC,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.exportWallet = exportWallet;
4
+ async function exportWallet(params) {
5
+ const { targetPublicKey, wallet } = params;
6
+ try {
7
+ const session = await wallet.getSession();
8
+ if (!session) {
9
+ throw new Error('Session not found');
10
+ }
11
+ const { organizationId } = session;
12
+ const listWalletsBody = JSON.stringify({
13
+ organizationId,
14
+ });
15
+ const listWalletsStamp = await wallet
16
+ .client()
17
+ ?.stamper.stamp(listWalletsBody);
18
+ if (!listWalletsStamp) {
19
+ throw new Error('Failed to stamp list wallets body');
20
+ }
21
+ const listWalletsResponse = await fetch('https://api.turnkey.com/public/v1/query/list_wallets', {
22
+ method: 'POST',
23
+ body: listWalletsBody,
24
+ headers: {
25
+ [listWalletsStamp.stampHeaderName]: listWalletsStamp.stampHeaderValue,
26
+ },
27
+ });
28
+ if (!listWalletsResponse.ok) {
29
+ throw new Error('Failed to list wallets');
30
+ }
31
+ const listWalletsData = await listWalletsResponse.json();
32
+ const walletId = listWalletsData.wallets[0].walletId;
33
+ const exportWalletBody = JSON.stringify({
34
+ type: 'ACTIVITY_TYPE_EXPORT_WALLET',
35
+ timestampMs: Date.now().toString(),
36
+ organizationId: organizationId,
37
+ parameters: {
38
+ walletId: walletId,
39
+ targetPublicKey,
40
+ language: 'MNEMONIC_LANGUAGE_ENGLISH',
41
+ },
42
+ });
43
+ const exportWalletStamp = await wallet
44
+ .client()
45
+ ?.stamper.stamp(exportWalletBody);
46
+ if (!exportWalletStamp) {
47
+ throw new Error('Failed to stamp export wallet body');
48
+ }
49
+ const exportWalletResponse = await fetch('https://api.turnkey.com/public/v1/submit/export_wallet', {
50
+ method: 'POST',
51
+ body: exportWalletBody,
52
+ headers: {
53
+ [exportWalletStamp.stampHeaderName]: exportWalletStamp.stampHeaderValue,
54
+ },
55
+ });
56
+ if (!exportWalletResponse.ok) {
57
+ throw new Error('Failed to export wallet');
58
+ }
59
+ const exportWalletData = await exportWalletResponse.json();
60
+ const exportBundle = exportWalletData?.activity?.result?.exportWalletResult?.exportBundle;
61
+ if (!exportBundle) {
62
+ throw new Error('Export bundle not found in response');
63
+ }
64
+ return { exportBundle, walletId, organizationId };
65
+ }
66
+ catch (_) {
67
+ throw new Error('Error exporting wallet');
68
+ }
69
+ }
70
+ //# sourceMappingURL=exportWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exportWallet.js","sourceRoot":"","sources":["../../../src/utils/exportWallet.ts"],"names":[],"mappings":";;AAwCA,oCAmFC;AAnFM,KAAK,UAAU,YAAY,CAChC,MAA8B;IAE9B,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAE1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACtC,CAAC;QACD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;QAElC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;YACrC,cAAc;SACf,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,MAAM,MAAM;aAClC,MAAM,EAAE;YACT,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QACtD,CAAC;QAED,MAAM,mBAAmB,GAAG,MAAM,KAAK,CACrC,sDAAsD,EACtD;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE;gBACP,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC,gBAAgB;aACtE;SACF,CACF,CAAA;QACD,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAA;QAExD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;YACtC,IAAI,EAAE,6BAA6B;YACnC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAClC,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE;gBACV,QAAQ,EAAE,QAAQ;gBAClB,eAAe;gBACf,QAAQ,EAAE,2BAA2B;aACtC;SACF,CAAC,CAAA;QACF,MAAM,iBAAiB,GAAG,MAAM,MAAM;aACnC,MAAM,EAAE;YACT,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QACD,MAAM,oBAAoB,GAAG,MAAM,KAAK,CACtC,wDAAwD,EACxD;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE;gBACP,CAAC,iBAAiB,CAAC,eAAe,CAAC,EACjC,iBAAiB,CAAC,gBAAgB;aACrC;SACF,CACF,CAAA;QACD,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC5C,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAA;QAE1D,MAAM,YAAY,GAChB,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,CAAA;QAEtE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;IACnD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.humanReadableDateTime = exports.base64UrlEncode = exports.generateRandomBuffer = void 0;
4
+ exports.parseSession = parseSession;
5
+ exports.normalizeTimestamp = normalizeTimestamp;
6
+ exports.pointEncode = pointEncode;
7
+ exports.uint8ArrayToHexString = uint8ArrayToHexString;
8
+ exports.generateCompressedPublicKeyFromKeyPair = generateCompressedPublicKeyFromKeyPair;
9
+ function parseSession(token) {
10
+ if (typeof token !== 'string') {
11
+ return token;
12
+ }
13
+ const [, payload] = token.split('.');
14
+ if (!payload) {
15
+ throw new Error('Invalid JWT: Missing payload');
16
+ }
17
+ const decoded = JSON.parse(Buffer.from(payload, 'base64').toString());
18
+ const { exp, public_key: publicKey, session_type: sessionType, user_id: userId, organization_id: organizationId, } = decoded;
19
+ if (!exp || !publicKey || !sessionType || !userId || !organizationId) {
20
+ throw new Error('JWT payload missing required fields');
21
+ }
22
+ return {
23
+ sessionType,
24
+ userId,
25
+ organizationId,
26
+ expiry: exp,
27
+ token: publicKey,
28
+ };
29
+ }
30
+ function normalizeTimestamp(timestamp) {
31
+ return timestamp < 1e10 ? timestamp * 1_000 : timestamp;
32
+ }
33
+ const generateRandomBuffer = () => {
34
+ const arr = new Uint8Array(32);
35
+ crypto.getRandomValues(arr);
36
+ return arr.buffer;
37
+ };
38
+ exports.generateRandomBuffer = generateRandomBuffer;
39
+ const base64UrlEncode = (challenge) => {
40
+ return Buffer.from(challenge)
41
+ .toString('base64')
42
+ .replace(/\+/g, '-')
43
+ .replace(/\//g, '_')
44
+ .replace(/=/g, '');
45
+ };
46
+ exports.base64UrlEncode = base64UrlEncode;
47
+ function pointEncode(raw) {
48
+ if (raw.length !== 65 || raw[0] !== 0x04) {
49
+ throw new Error('Invalid uncompressed P-256 key');
50
+ }
51
+ const x = raw.slice(1, 33);
52
+ const y = raw.slice(33, 65);
53
+ if (x.length !== 32 || y.length !== 32) {
54
+ throw new Error('Invalid x or y length');
55
+ }
56
+ const prefix = (y[31] & 1) === 0 ? 0x02 : 0x03;
57
+ const compressed = new Uint8Array(33);
58
+ compressed[0] = prefix;
59
+ compressed.set(x, 1);
60
+ return compressed;
61
+ }
62
+ function uint8ArrayToHexString(input) {
63
+ return input.reduce((result, x) => result + x.toString(16).padStart(2, '0'), '');
64
+ }
65
+ async function generateCompressedPublicKeyFromKeyPair(keyPair) {
66
+ const rawPubKey = new Uint8Array(await crypto.subtle.exportKey('raw', keyPair.publicKey));
67
+ const compressedPubKey = pointEncode(rawPubKey);
68
+ const compressedHex = uint8ArrayToHexString(compressedPubKey);
69
+ return compressedHex;
70
+ }
71
+ const humanReadableDateTime = () => {
72
+ return new Date().toLocaleString().replaceAll('/', '-').replaceAll(':', '.');
73
+ };
74
+ exports.humanReadableDateTime = humanReadableDateTime;
75
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @deprecated Use {@link registerWithOTP} instead
3
+ * See {@link registerWithOTP} for more details on how to authenticate with email.
4
+ */
5
+ export async function authenticateWithEmail(client, params) {
6
+ const { email, projectId, targetPublicKey, emailCustomization } = params;
7
+ return await client.request({
8
+ path: `${projectId}/auth/email-magic`,
9
+ method: 'POST',
10
+ body: {
11
+ email,
12
+ emailCustomization,
13
+ targetPublicKey,
14
+ projectId,
15
+ },
16
+ });
17
+ }
18
+ //# sourceMappingURL=authenticateWithEmail.js.map
@@ -0,0 +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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Authenticates a user with OAuth credentials
3
+ *
4
+ * @param client - The ZeroDev Wallet client
5
+ * @param params - The parameters for OAuth authentication
6
+ * @returns The authentication result
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const result = await authenticateWithOAuth(client, {
11
+ * oidcToken: 'oauth_token_here',
12
+ * provider: 'google',
13
+ * projectId: 'proj_456',
14
+ * targetPublicKey: '0x...'
15
+ * });
16
+ * ```
17
+ */
18
+ export async function authenticateWithOAuth(client, params) {
19
+ const { oidcToken, provider, projectId, targetPublicKey } = params;
20
+ return await client.request({
21
+ path: `${projectId}/auth/oauth`,
22
+ method: 'POST',
23
+ body: {
24
+ oidcToken,
25
+ provider,
26
+ targetPublicKey,
27
+ projectId,
28
+ },
29
+ });
30
+ }
31
+ //# sourceMappingURL=authenticateWithOAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticateWithOAuth.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithOAuth.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAElE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,aAAa;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,SAAS;YACT,QAAQ;YACR,eAAe;YACf,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Gets the current user information
3
+ *
4
+ * @param client - The ZeroDev Wallet client
5
+ * @param params - The parameters for the whoami request
6
+ * @returns The user information
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const userInfo = await getWhoami(client, {
11
+ * organizationId: 'org_123',
12
+ * projectId: 'proj_456'
13
+ * });
14
+ * console.log(userInfo.userId); // 'user_789'
15
+ * ```
16
+ */
17
+ export async function getWhoami(client, params) {
18
+ const { organizationId, projectId } = params;
19
+ return await client.request({
20
+ path: `${projectId}/whoami`,
21
+ method: 'POST',
22
+ body: {
23
+ organizationId,
24
+ },
25
+ stamp: true,
26
+ });
27
+ }
28
+ //# sourceMappingURL=getWhoami.js.map
@@ -0,0 +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"}
@@ -0,0 +1,8 @@
1
+ export { authenticateWithEmail, } from './authenticateWithEmail.js';
2
+ export { authenticateWithOAuth, } from './authenticateWithOAuth.js';
3
+ export { getWhoami, } from './getWhoami.js';
4
+ export { loginWithOTP, } from './loginWithOTP.js';
5
+ export { loginWithStamp, } from './loginWithStamp.js';
6
+ export { registerWithOTP, } from './registerWithOTP.js';
7
+ export { registerWithPasskey, } from './registerWithPasskey.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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;AAEnC,OAAO,EAGL,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAIL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Logs in a user with OTP (One-Time Password) authentication
3
+ * This verifies the OTP code and returns a session token
4
+ *
5
+ * @param client - The ZeroDev Wallet client
6
+ * @param params - The parameters for OTP login
7
+ * @returns The login result with session token
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // After receiving OTP code via email
12
+ * const result = await loginWithOTP(client, {
13
+ * otpId: 'otp_123456',
14
+ * otpCode: '123456',
15
+ * subOrganizationId: 'org_abc',
16
+ * encodedPublicKey: '0x...',
17
+ * projectId: 'proj_456'
18
+ * });
19
+ *
20
+ * // Use result.session for authenticated requests
21
+ * ```
22
+ */
23
+ export async function loginWithOTP(client, params) {
24
+ const { otpId, otpCode, subOrganizationId, encodedPublicKey, projectId } = params;
25
+ return await client.request({
26
+ path: `${projectId}/auth/login/otp`,
27
+ method: 'POST',
28
+ body: {
29
+ otpId,
30
+ otpCode,
31
+ subOrganizationId,
32
+ encodedPublicKey,
33
+ },
34
+ });
35
+ }
36
+ //# sourceMappingURL=loginWithOTP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithOTP.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAA8B;IAE9B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,GACtE,MAAM,CAAA;IAER,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,iBAAiB;QACnC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,OAAO;YACP,iBAAiB;YACjB,gBAAgB;SACjB;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Logs in a user with a stamp
3
+ *
4
+ * @param client - The ZeroDev Wallet client
5
+ * @param params - The parameters for login with a stamp
6
+ * @returns The login result
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const result = await loginWithStamp(client, {
11
+ * organizationId: 'org_456',
12
+ * projectId: 'proj_456',
13
+ * targetPublicKey: 'encodedPublicKey',
14
+ * });
15
+ * ```
16
+ */
17
+ export async function loginWithStamp(client, params) {
18
+ const { projectId, targetPublicKey, organizationId } = params;
19
+ const timestampMs = Date.now();
20
+ const timestampMsString = timestampMs.toString();
21
+ const timestampIso = new Date(timestampMs).toISOString();
22
+ const stampPayload = `${JSON.stringify({
23
+ organizationId,
24
+ parameters: {
25
+ publicKey: targetPublicKey,
26
+ },
27
+ timestampMs: timestampMsString,
28
+ type: 'ACTIVITY_TYPE_STAMP_LOGIN',
29
+ })}\n`;
30
+ const stamp = await client.stamper.stamp(stampPayload);
31
+ return client.request({
32
+ path: `${projectId}/auth/login/passkey`,
33
+ method: 'POST',
34
+ body: {
35
+ subOrganizationId: organizationId,
36
+ targetPublicKey,
37
+ timestamp: timestampIso,
38
+ stamp,
39
+ },
40
+ });
41
+ }
42
+ //# sourceMappingURL=loginWithStamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginWithStamp.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithStamp.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAgC;IAEhC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IAE7D,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,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,cAAc;QACd,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;SAC3B;QACD,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,2BAA2B;KAClC,CAAC,IAAI,CAAA;IACN,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAEtD,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,qBAAqB;QACvC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,iBAAiB,EAAE,cAAc;YACjC,eAAe;YACf,SAAS,EAAE,YAAY;YACvB,KAAK;SACN;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Registers a user with OTP (One-Time Password) authentication
3
+ * This will send an OTP code to the specified contact method
4
+ *
5
+ * @param client - The ZeroDev Wallet client
6
+ * @param params - The parameters for OTP registration
7
+ * @returns The registration result including otpId needed for login
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const result = await registerWithOTP(client, {
12
+ * email: 'user@example.com',
13
+ * contact: {
14
+ * type: 'email',
15
+ * contact: 'user@example.com'
16
+ * },
17
+ * projectId: 'proj_456'
18
+ * });
19
+ *
20
+ * // Use result.otpId for the login step
21
+ * ```
22
+ */
23
+ export async function registerWithOTP(client, params) {
24
+ const { email, contact, projectId, emailCustomization } = params;
25
+ return await client.request({
26
+ path: `${projectId}/auth/register/otp`,
27
+ method: 'POST',
28
+ body: {
29
+ email,
30
+ contact,
31
+ projectId,
32
+ emailCustomization,
33
+ },
34
+ });
35
+ }
36
+ //# sourceMappingURL=registerWithOTP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithOTP.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;;;;;;;;;;;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,oBAAoB;QACtC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,OAAO;YACP,SAAS;YACT,kBAAkB;SACnB;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Registers a passkey with the user's wallet
3
+ *
4
+ * @param client - The ZeroDev Wallet client
5
+ * @param params - The parameters for passkey registration
6
+ * @returns The passkey registration result
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const result = await registerWithPasskey(client, {
11
+ * email: 'user@example.com',
12
+ * projectId: 'proj_456',
13
+ * challenge: 'challenge',
14
+ * attestation: {
15
+ * attestationObject: 'attestationObject',
16
+ * clientDataJson: 'clientDataJson',
17
+ * credentialId: 'credentialId'
18
+ * },
19
+ * encodedPublicKey: 'encodedPublicKey'
20
+ * });
21
+ * ```
22
+ */
23
+ export async function registerWithPasskey(client, params) {
24
+ const { email, projectId, challenge, attestation, encodedPublicKey } = params;
25
+ return client.request({
26
+ path: `${projectId}/auth/register/passkey`,
27
+ method: 'POST',
28
+ body: {
29
+ email,
30
+ attestation,
31
+ challenge,
32
+ encodedPublicKey,
33
+ },
34
+ });
35
+ }
36
+ //# sourceMappingURL=registerWithPasskey.js.map
@@ -0,0 +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"}
@@ -0,0 +1,5 @@
1
+ // Auth actions
2
+ export { authenticateWithEmail, authenticateWithOAuth, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, } from './auth/index.js';
3
+ // Wallet actions
4
+ export { getUserWallet, signRawPayload, signTransaction, } from './wallet/index.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAKL,qBAAqB,EACrB,qBAAqB,EAIrB,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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Gets the user's wallet information
3
+ *
4
+ * @param client - The ZeroDev Wallet client
5
+ * @param params - The parameters for getting wallet info
6
+ * @returns The wallet information
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const wallet = await getUserWallet(client, {
11
+ * organizationId: 'org_123',
12
+ * projectId: 'proj_456'
13
+ * });
14
+ * console.log(wallet.walletAddress); // '0x...'
15
+ * ```
16
+ */
17
+ export async function getUserWallet(client, params) {
18
+ const { organizationId, projectId } = params;
19
+ return await client.request({
20
+ path: `${projectId}/user-wallet`,
21
+ body: {
22
+ organizationId,
23
+ },
24
+ });
25
+ }
26
+ //# sourceMappingURL=getUserWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUserWallet.js","sourceRoot":"","sources":["../../../../src/actions/wallet/getUserWallet.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,MAA+B;IAE/B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAE5C,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,cAAc;QAChC,IAAI,EAAE;YACJ,cAAc;SACf;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { getUserWallet, } from './getUserWallet.js';
2
+ export { signRawPayload, } from './signRawPayload.js';
3
+ export { signTransaction, } from './signTransaction.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}