@account-kit/wallet-client 0.1.0-alpha.1 → 0.1.0-alpha.11

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 (258) hide show
  1. package/dist/esm/client/actions/createAccount.d.ts +27 -2
  2. package/dist/esm/client/actions/createAccount.js +25 -0
  3. package/dist/esm/client/actions/createAccount.js.map +1 -1
  4. package/dist/esm/client/actions/formatSign.d.ts +28 -0
  5. package/dist/esm/client/actions/formatSign.js +30 -0
  6. package/dist/esm/client/actions/formatSign.js.map +1 -0
  7. package/dist/esm/client/actions/getCallsStatus.d.ts +22 -4
  8. package/dist/esm/client/actions/getCallsStatus.js +19 -0
  9. package/dist/esm/client/actions/getCallsStatus.js.map +1 -1
  10. package/dist/esm/client/actions/grantPermissions.d.ts +63 -6
  11. package/dist/esm/client/actions/grantPermissions.js +63 -3
  12. package/dist/esm/client/actions/grantPermissions.js.map +1 -1
  13. package/dist/esm/client/actions/listAccounts.d.ts +32 -4
  14. package/dist/esm/client/actions/listAccounts.js +35 -2
  15. package/dist/esm/client/actions/listAccounts.js.map +1 -1
  16. package/dist/esm/client/actions/prepareCalls.d.ts +32 -6
  17. package/dist/esm/client/actions/prepareCalls.js +39 -5
  18. package/dist/esm/client/actions/prepareCalls.js.map +1 -1
  19. package/dist/esm/client/actions/prepareSign.d.ts +25 -0
  20. package/dist/esm/client/actions/prepareSign.js +28 -0
  21. package/dist/esm/client/actions/prepareSign.js.map +1 -0
  22. package/dist/esm/client/actions/requestAccount.d.ts +24 -6
  23. package/dist/esm/client/actions/requestAccount.js +38 -7
  24. package/dist/esm/client/actions/requestAccount.js.map +1 -1
  25. package/dist/esm/client/actions/sendPreparedCalls.d.ts +33 -4
  26. package/dist/esm/client/actions/sendPreparedCalls.js +37 -1
  27. package/dist/esm/client/actions/sendPreparedCalls.js.map +1 -1
  28. package/dist/esm/client/actions/signMessage.d.ts +25 -5
  29. package/dist/esm/client/actions/signMessage.js +22 -2
  30. package/dist/esm/client/actions/signMessage.js.map +1 -1
  31. package/dist/esm/client/actions/signPreparedCalls.d.ts +14 -0
  32. package/dist/esm/client/actions/signPreparedCalls.js +43 -0
  33. package/dist/esm/client/actions/signPreparedCalls.js.map +1 -0
  34. package/dist/esm/client/actions/signSignatureRequest.d.ts +39 -5
  35. package/dist/esm/client/actions/signSignatureRequest.js +69 -11
  36. package/dist/esm/client/actions/signSignatureRequest.js.map +1 -1
  37. package/dist/esm/client/actions/signTypedData.d.ts +37 -4
  38. package/dist/esm/client/actions/signTypedData.js +34 -1
  39. package/dist/esm/client/actions/signTypedData.js.map +1 -1
  40. package/dist/esm/client/client.e2e-test.js +249 -45
  41. package/dist/esm/client/client.e2e-test.js.map +1 -1
  42. package/dist/esm/client/decorator.d.ts +12 -8
  43. package/dist/esm/client/decorator.js +5 -3
  44. package/dist/esm/client/decorator.js.map +1 -1
  45. package/dist/esm/client/index.d.ts +38 -12
  46. package/dist/esm/client/index.js +0 -3
  47. package/dist/esm/client/index.js.map +1 -1
  48. package/dist/esm/exports/index.d.ts +5 -6
  49. package/dist/esm/exports/index.js +4 -6
  50. package/dist/esm/exports/index.js.map +1 -1
  51. package/dist/esm/exports/internal.d.ts +1 -10
  52. package/dist/esm/exports/internal.js +0 -12
  53. package/dist/esm/exports/internal.js.map +1 -1
  54. package/dist/esm/internal/decorator.d.ts +2 -0
  55. package/dist/esm/internal/decorator.js +10 -0
  56. package/dist/esm/internal/decorator.js.map +1 -0
  57. package/dist/esm/isomorphic/actions/createSession.d.ts +1 -2
  58. package/dist/esm/isomorphic/actions/createSession.js +40 -11
  59. package/dist/esm/isomorphic/actions/createSession.js.map +1 -1
  60. package/dist/esm/isomorphic/actions/formatSign.d.ts +8 -0
  61. package/dist/esm/isomorphic/actions/formatSign.js +42 -0
  62. package/dist/esm/isomorphic/actions/formatSign.js.map +1 -0
  63. package/dist/esm/isomorphic/actions/getCallsStatus.d.ts +1 -15
  64. package/dist/esm/isomorphic/actions/getCallsStatus.js +38 -27
  65. package/dist/esm/isomorphic/actions/getCallsStatus.js.map +1 -1
  66. package/dist/esm/isomorphic/actions/prepareCalls.d.ts +1 -2
  67. package/dist/esm/isomorphic/actions/prepareCalls.js +78 -20
  68. package/dist/esm/isomorphic/actions/prepareCalls.js.map +1 -1
  69. package/dist/esm/isomorphic/actions/prepareSign.d.ts +7 -0
  70. package/dist/esm/isomorphic/actions/prepareSign.js +49 -0
  71. package/dist/esm/isomorphic/actions/prepareSign.js.map +1 -0
  72. package/dist/esm/isomorphic/actions/sendPreparedCalls.d.ts +3 -4
  73. package/dist/esm/isomorphic/actions/sendPreparedCalls.js +165 -25
  74. package/dist/esm/isomorphic/actions/sendPreparedCalls.js.map +1 -1
  75. package/dist/esm/isomorphic/client.d.ts +204 -27
  76. package/dist/esm/isomorphic/client.js +6 -2
  77. package/dist/esm/isomorphic/client.js.map +1 -1
  78. package/dist/esm/isomorphic/utils/7702.d.ts +19 -0
  79. package/dist/esm/isomorphic/utils/7702.js +70 -0
  80. package/dist/esm/isomorphic/utils/7702.js.map +1 -0
  81. package/dist/esm/isomorphic/utils/createAccount.d.ts +5 -4
  82. package/dist/esm/isomorphic/utils/createAccount.js +84 -10
  83. package/dist/esm/isomorphic/utils/createAccount.js.map +1 -1
  84. package/dist/esm/isomorphic/utils/createDummySigner.js +3 -3
  85. package/dist/esm/isomorphic/utils/createDummySigner.js.map +1 -1
  86. package/dist/esm/isomorphic/utils/decodeSignature.d.ts +3 -0
  87. package/dist/esm/isomorphic/utils/decodeSignature.js +15 -0
  88. package/dist/esm/isomorphic/utils/decodeSignature.js.map +1 -0
  89. package/dist/esm/isomorphic/utils/parsePermissionsContext.d.ts +6 -5
  90. package/dist/esm/isomorphic/utils/parsePermissionsContext.js +19 -6
  91. package/dist/esm/isomorphic/utils/parsePermissionsContext.js.map +1 -1
  92. package/dist/esm/isomorphic/utils/supportsFeature.d.ts +4 -0
  93. package/dist/esm/isomorphic/utils/supportsFeature.js +21 -0
  94. package/dist/esm/isomorphic/utils/supportsFeature.js.map +1 -0
  95. package/dist/esm/local/client.d.ts +3 -3
  96. package/dist/esm/local/client.js +11 -4
  97. package/dist/esm/local/client.js.map +1 -1
  98. package/dist/esm/remote/client.d.ts +9 -3
  99. package/dist/esm/remote/client.js +10 -11
  100. package/dist/esm/remote/client.js.map +1 -1
  101. package/dist/esm/types.d.ts +27 -13
  102. package/dist/esm/types.js.map +1 -1
  103. package/dist/esm/utils.d.ts +1 -0
  104. package/dist/esm/utils.js.map +1 -1
  105. package/dist/types/client/actions/createAccount.d.ts +27 -2
  106. package/dist/types/client/actions/createAccount.d.ts.map +1 -1
  107. package/dist/types/client/actions/formatSign.d.ts +29 -0
  108. package/dist/types/client/actions/formatSign.d.ts.map +1 -0
  109. package/dist/types/client/actions/getCallsStatus.d.ts +22 -4
  110. package/dist/types/client/actions/getCallsStatus.d.ts.map +1 -1
  111. package/dist/types/client/actions/grantPermissions.d.ts +63 -6
  112. package/dist/types/client/actions/grantPermissions.d.ts.map +1 -1
  113. package/dist/types/client/actions/listAccounts.d.ts +32 -4
  114. package/dist/types/client/actions/listAccounts.d.ts.map +1 -1
  115. package/dist/types/client/actions/prepareCalls.d.ts +32 -6
  116. package/dist/types/client/actions/prepareCalls.d.ts.map +1 -1
  117. package/dist/types/client/actions/prepareSign.d.ts +26 -0
  118. package/dist/types/client/actions/prepareSign.d.ts.map +1 -0
  119. package/dist/types/client/actions/requestAccount.d.ts +24 -6
  120. package/dist/types/client/actions/requestAccount.d.ts.map +1 -1
  121. package/dist/types/client/actions/sendPreparedCalls.d.ts +33 -4
  122. package/dist/types/client/actions/sendPreparedCalls.d.ts.map +1 -1
  123. package/dist/types/client/actions/signMessage.d.ts +25 -5
  124. package/dist/types/client/actions/signMessage.d.ts.map +1 -1
  125. package/dist/types/client/actions/signPreparedCalls.d.ts +15 -0
  126. package/dist/types/client/actions/signPreparedCalls.d.ts.map +1 -0
  127. package/dist/types/client/actions/signSignatureRequest.d.ts +39 -5
  128. package/dist/types/client/actions/signSignatureRequest.d.ts.map +1 -1
  129. package/dist/types/client/actions/signTypedData.d.ts +37 -4
  130. package/dist/types/client/actions/signTypedData.d.ts.map +1 -1
  131. package/dist/types/client/decorator.d.ts +12 -8
  132. package/dist/types/client/decorator.d.ts.map +1 -1
  133. package/dist/types/client/index.d.ts +38 -12
  134. package/dist/types/client/index.d.ts.map +1 -1
  135. package/dist/types/exports/index.d.ts +5 -6
  136. package/dist/types/exports/index.d.ts.map +1 -1
  137. package/dist/types/exports/internal.d.ts +1 -10
  138. package/dist/types/exports/internal.d.ts.map +1 -1
  139. package/dist/types/internal/decorator.d.ts +3 -0
  140. package/dist/types/internal/decorator.d.ts.map +1 -0
  141. package/dist/types/isomorphic/actions/createSession.d.ts +1 -2
  142. package/dist/types/isomorphic/actions/createSession.d.ts.map +1 -1
  143. package/dist/types/isomorphic/actions/formatSign.d.ts +9 -0
  144. package/dist/types/isomorphic/actions/formatSign.d.ts.map +1 -0
  145. package/dist/types/isomorphic/actions/getCallsStatus.d.ts +1 -15
  146. package/dist/types/isomorphic/actions/getCallsStatus.d.ts.map +1 -1
  147. package/dist/types/isomorphic/actions/prepareCalls.d.ts +1 -2
  148. package/dist/types/isomorphic/actions/prepareCalls.d.ts.map +1 -1
  149. package/dist/types/isomorphic/actions/prepareSign.d.ts +8 -0
  150. package/dist/types/isomorphic/actions/prepareSign.d.ts.map +1 -0
  151. package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts +3 -4
  152. package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts.map +1 -1
  153. package/dist/types/isomorphic/client.d.ts +204 -27
  154. package/dist/types/isomorphic/client.d.ts.map +1 -1
  155. package/dist/types/isomorphic/utils/7702.d.ts +20 -0
  156. package/dist/types/isomorphic/utils/7702.d.ts.map +1 -0
  157. package/dist/types/isomorphic/utils/createAccount.d.ts +5 -4
  158. package/dist/types/isomorphic/utils/createAccount.d.ts.map +1 -1
  159. package/dist/types/isomorphic/utils/createDummySigner.d.ts.map +1 -1
  160. package/dist/types/isomorphic/utils/decodeSignature.d.ts +4 -0
  161. package/dist/types/isomorphic/utils/decodeSignature.d.ts.map +1 -0
  162. package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts +6 -5
  163. package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts.map +1 -1
  164. package/dist/types/isomorphic/utils/supportsFeature.d.ts +5 -0
  165. package/dist/types/isomorphic/utils/supportsFeature.d.ts.map +1 -0
  166. package/dist/types/local/client.d.ts +3 -3
  167. package/dist/types/local/client.d.ts.map +1 -1
  168. package/dist/types/remote/client.d.ts +9 -3
  169. package/dist/types/remote/client.d.ts.map +1 -1
  170. package/dist/types/types.d.ts +27 -13
  171. package/dist/types/types.d.ts.map +1 -1
  172. package/dist/types/utils.d.ts +1 -0
  173. package/dist/types/utils.d.ts.map +1 -1
  174. package/package.json +9 -6
  175. package/src/client/actions/createAccount.ts +27 -2
  176. package/src/client/actions/formatSign.ts +53 -0
  177. package/src/client/actions/getCallsStatus.ts +21 -12
  178. package/src/client/actions/grantPermissions.ts +69 -26
  179. package/src/client/actions/listAccounts.ts +44 -6
  180. package/src/client/actions/prepareCalls.ts +46 -26
  181. package/src/client/actions/prepareSign.ts +46 -0
  182. package/src/client/actions/requestAccount.ts +60 -41
  183. package/src/client/actions/sendPreparedCalls.ts +44 -7
  184. package/src/client/actions/signMessage.ts +26 -21
  185. package/src/client/actions/signPreparedCalls.ts +67 -0
  186. package/src/client/actions/signSignatureRequest.ts +84 -20
  187. package/src/client/actions/signTypedData.ts +40 -19
  188. package/src/client/client.e2e-test.ts +408 -127
  189. package/src/client/decorator.ts +28 -26
  190. package/src/client/index.ts +50 -40
  191. package/src/exports/index.ts +5 -13
  192. package/src/exports/internal.ts +2 -10
  193. package/src/internal/decorator.ts +12 -0
  194. package/src/isomorphic/actions/createSession.ts +56 -13
  195. package/src/isomorphic/actions/formatSign.ts +76 -0
  196. package/src/isomorphic/actions/getCallsStatus.ts +47 -33
  197. package/src/isomorphic/actions/prepareCalls.ts +95 -23
  198. package/src/isomorphic/actions/prepareSign.ts +88 -0
  199. package/src/isomorphic/actions/sendPreparedCalls.ts +218 -42
  200. package/src/isomorphic/client.ts +10 -2
  201. package/src/isomorphic/utils/7702.ts +135 -0
  202. package/src/isomorphic/utils/createAccount.ts +101 -13
  203. package/src/isomorphic/utils/createDummySigner.ts +3 -2
  204. package/src/isomorphic/utils/decodeSignature.ts +21 -0
  205. package/src/isomorphic/utils/parsePermissionsContext.ts +29 -11
  206. package/src/isomorphic/utils/supportsFeature.ts +34 -0
  207. package/src/local/client.ts +58 -55
  208. package/src/remote/client.ts +19 -19
  209. package/src/types.ts +29 -23
  210. package/src/utils.ts +2 -0
  211. package/dist/esm/capabilities/index.d.ts +0 -31
  212. package/dist/esm/capabilities/index.js +0 -10
  213. package/dist/esm/capabilities/index.js.map +0 -1
  214. package/dist/esm/capabilities/overrides.d.ts +0 -26
  215. package/dist/esm/capabilities/overrides.js +0 -14
  216. package/dist/esm/capabilities/overrides.js.map +0 -1
  217. package/dist/esm/capabilities/paymaster.d.ts +0 -3
  218. package/dist/esm/capabilities/paymaster.js +0 -5
  219. package/dist/esm/capabilities/paymaster.js.map +0 -1
  220. package/dist/esm/capabilities/permissions/index.d.ts +0 -138
  221. package/dist/esm/capabilities/permissions/index.js +0 -71
  222. package/dist/esm/capabilities/permissions/index.js.map +0 -1
  223. package/dist/esm/capabilities/permissions/mav2.d.ts +0 -36
  224. package/dist/esm/capabilities/permissions/mav2.js +0 -79
  225. package/dist/esm/capabilities/permissions/mav2.js.map +0 -1
  226. package/dist/esm/rpc/request.d.ts +0 -352
  227. package/dist/esm/rpc/request.js +0 -204
  228. package/dist/esm/rpc/request.js.map +0 -1
  229. package/dist/esm/rpc/schema.d.ts +0 -342
  230. package/dist/esm/rpc/schema.js +0 -5
  231. package/dist/esm/rpc/schema.js.map +0 -1
  232. package/dist/esm/schemas.d.ts +0 -216
  233. package/dist/esm/schemas.js +0 -211
  234. package/dist/esm/schemas.js.map +0 -1
  235. package/dist/types/capabilities/index.d.ts +0 -32
  236. package/dist/types/capabilities/index.d.ts.map +0 -1
  237. package/dist/types/capabilities/overrides.d.ts +0 -27
  238. package/dist/types/capabilities/overrides.d.ts.map +0 -1
  239. package/dist/types/capabilities/paymaster.d.ts +0 -4
  240. package/dist/types/capabilities/paymaster.d.ts.map +0 -1
  241. package/dist/types/capabilities/permissions/index.d.ts +0 -139
  242. package/dist/types/capabilities/permissions/index.d.ts.map +0 -1
  243. package/dist/types/capabilities/permissions/mav2.d.ts +0 -37
  244. package/dist/types/capabilities/permissions/mav2.d.ts.map +0 -1
  245. package/dist/types/rpc/request.d.ts +0 -353
  246. package/dist/types/rpc/request.d.ts.map +0 -1
  247. package/dist/types/rpc/schema.d.ts +0 -343
  248. package/dist/types/rpc/schema.d.ts.map +0 -1
  249. package/dist/types/schemas.d.ts +0 -217
  250. package/dist/types/schemas.d.ts.map +0 -1
  251. package/src/capabilities/index.ts +0 -13
  252. package/src/capabilities/overrides.ts +0 -20
  253. package/src/capabilities/paymaster.ts +0 -5
  254. package/src/capabilities/permissions/index.ts +0 -142
  255. package/src/capabilities/permissions/mav2.ts +0 -127
  256. package/src/rpc/request.ts +0 -273
  257. package/src/rpc/schema.ts +0 -40
  258. package/src/schemas.ts +0 -257
package/src/schemas.ts DELETED
@@ -1,257 +0,0 @@
1
- import {
2
- FormatRegistry,
3
- Type,
4
- type SchemaOptions,
5
- type Static,
6
- } from "@sinclair/typebox";
7
- import { toHex, slice, pad, concat, hexToBigInt } from "viem";
8
-
9
- const UUID_V4_REGEX =
10
- /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
11
- FormatRegistry.Set("uuid", (value) => UUID_V4_REGEX.test(value));
12
-
13
- const BASE_64_URL_REGEX = /^[A-Za-z0-9_-]+$/; // Matches base64url encoded strings (without padding)
14
- FormatRegistry.Set("base64url", (value) => BASE_64_URL_REGEX.test(value));
15
-
16
- export const TypeHex = (options?: SchemaOptions) =>
17
- Type.TemplateLiteral("0x${string}", options);
18
- export const TypeAddress = Type.TemplateLiteral("0x${string}");
19
- export const TypeUuid = Type.String({ format: "uuid" });
20
- export const TypeBase64UrlEncodedString = Type.String({
21
- format: "base64url",
22
- });
23
-
24
- // BigInt is not json-serializable, so it must be encoded as a string.
25
- export const TypeU256 = Type.Transform(Type.String())
26
- .Decode((value) => BigInt(value))
27
- .Encode((value) => toHex(value));
28
-
29
- export const TypeU32 = Type.Transform(Type.String())
30
- .Decode((value) => Number.parseInt(value, 16))
31
- .Encode((value) => toHex(value));
32
-
33
- export const TypeUserOperationRequest_v6 = Type.Object({
34
- sender: TypeAddress,
35
- nonce: TypeHex(),
36
- initCode: Type.Union([TypeHex(), Type.Literal("0x")]),
37
- callData: TypeHex(),
38
- callGasLimit: TypeHex(),
39
- verificationGasLimit: TypeHex(),
40
- preVerificationGas: TypeHex(),
41
- maxFeePerGas: TypeHex(),
42
- maxPriorityFeePerGas: TypeHex(),
43
- paymasterAndData: Type.Union([TypeHex(), Type.Literal("0x")]),
44
- signature: TypeHex(),
45
- });
46
-
47
- export const TypeUserOperationRequest_v7 = Type.Object({
48
- sender: TypeAddress,
49
- nonce: TypeHex(),
50
- factory: Type.Optional(TypeAddress),
51
- factoryData: Type.Optional(TypeHex()),
52
- callData: TypeHex(),
53
- callGasLimit: TypeHex(),
54
- verificationGasLimit: TypeHex(),
55
- preVerificationGas: TypeHex(),
56
- maxFeePerGas: TypeHex(),
57
- maxPriorityFeePerGas: TypeHex(),
58
- paymaster: Type.Optional(TypeAddress),
59
- paymasterData: Type.Optional(TypeHex()),
60
- paymasterVerificationGasLimit: Type.Optional(TypeHex()),
61
- paymasterPostOpGasLimit: Type.Optional(TypeHex()),
62
- signature: TypeHex(),
63
- });
64
-
65
- export const TypeWebAuthnPublicKey = Type.Object({
66
- x: TypeU256,
67
- y: TypeU256,
68
- });
69
-
70
- export const TypePersistedInitcode = Type.Object({
71
- factoryAddress: TypeAddress,
72
- initcode: Type.Union([
73
- Type.Object({
74
- factoryType: Type.Literal("unknown"),
75
- factoryData: TypeHex(),
76
- }),
77
- Type.Object({
78
- factoryType: Type.Union([
79
- Type.Literal("LightAccountV2.0.0"),
80
- Type.Literal("LightAccountV1.1.0"),
81
- Type.Literal("LightAccountV1.0.2"),
82
- Type.Literal("LightAccountV1.0.1"),
83
- ]),
84
- salt: TypeU256,
85
- initialOwner: TypeAddress,
86
- }),
87
- Type.Object({
88
- factoryType: Type.Union([
89
- Type.Literal("MAv1.0.0-MultiOwner"),
90
- Type.Literal("LightAccountV2.0.0-MultiOwner"),
91
- ]),
92
- salt: TypeU256,
93
- initialOwners: Type.Array(TypeAddress),
94
- }),
95
- Type.Object({
96
- factoryType: Type.Literal("MAv1.0.0-MultiSig"),
97
- salt: TypeU256,
98
- initialOwners: Type.Array(TypeAddress),
99
- threshold: TypeU256,
100
- }),
101
- Type.Intersect([
102
- Type.Object({
103
- factoryType: Type.Literal("MAv2.0.0"),
104
- salt: TypeU256,
105
- }),
106
- Type.Union([
107
- Type.Object({
108
- mav2type: Type.Literal("ma-ssv"),
109
- initialOwner: TypeAddress,
110
- entityId: TypeU32,
111
- }),
112
- Type.Object({
113
- mav2type: Type.Literal("sma-b"),
114
- initialOwner: TypeAddress,
115
- }),
116
- Type.Object({
117
- mav2type: Type.Literal("ma-webauthn"),
118
- initialOwner: TypeWebAuthnPublicKey,
119
- entityId: TypeU32,
120
- }),
121
- ]),
122
- ]),
123
- ]),
124
- });
125
-
126
- export const TypeSerializedInitcode = Type.Object({
127
- factoryType: Type.Union([
128
- Type.Literal("LightAccountV1.0.1"),
129
- Type.Literal("LightAccountV1.0.2"),
130
- Type.Literal("LightAccountV1.1.0"),
131
- Type.Literal("LightAccountV2.0.0"),
132
- Type.Literal("LightAccountV2.0.0-MultiOwner"),
133
- Type.Literal("MAv1.0.0-MultiOwner"),
134
- Type.Literal("MAv1.0.0-MultiSig"),
135
- Type.Literal("MAv2.0.0-sma-b"),
136
- Type.Literal("MAv2.0.0-ma-ssv"),
137
- Type.Literal("MAv2.0.0-ma-webauthn"),
138
- Type.Literal("unknown"),
139
- ]),
140
- factoryAddress: TypeAddress,
141
- factoryData: TypeHex(),
142
- });
143
-
144
- export const TypeCounterfactualInfo = Type.Intersect([
145
- Type.Object({
146
- accountAddress: TypeAddress,
147
- }),
148
- Type.Union([
149
- Type.Intersect([
150
- Type.Object({
151
- type: Type.Literal("sca"),
152
- }),
153
- TypePersistedInitcode,
154
- ]),
155
- Type.Object({
156
- type: Type.Literal("7702"),
157
- }),
158
- ]),
159
- ]);
160
- export type TypeCounterfactualInfo = Static<typeof TypeCounterfactualInfo>;
161
-
162
- export const TypeCreationOptions = Type.Optional(
163
- Type.Union([
164
- Type.Object({
165
- // Optional b/c `sma-b` is the default if no accountType is specified.
166
- accountType: Type.Optional(Type.Literal("sma-b")),
167
- salt: Type.Optional(TypeHex()),
168
- }),
169
- // TODO: add more options after v0.
170
- ]),
171
- );
172
- export type TypeCreationOptions = Static<typeof TypeCreationOptions>;
173
-
174
- export type TypeAccountType = Exclude<
175
- Static<typeof TypeCreationOptions>,
176
- undefined
177
- >["accountType"];
178
-
179
- export const KeySigner = Type.Object({
180
- type: Type.Union([Type.Literal("secp256k1"), Type.Literal("contract")]),
181
- publicKey: TypeHex(),
182
- });
183
- export type KeySigner = Static<typeof KeySigner>;
184
-
185
- export const TTypedDataDefinition = Type.Transform(
186
- Type.Object({
187
- domain: Type.Optional(
188
- Type.Object({
189
- chainId: Type.Optional(Type.Number()),
190
- name: Type.Optional(Type.String()),
191
- salt: Type.Optional(TypeHex()),
192
- verifyingContract: Type.Optional(TypeAddress),
193
- version: Type.Optional(Type.String()),
194
- }),
195
- ),
196
- types: Type.Record(
197
- Type.String(),
198
- Type.Array(
199
- Type.Object({
200
- name: Type.String(),
201
- type: Type.String(),
202
- }),
203
- ),
204
- ),
205
- primaryType: Type.String(),
206
- message: Type.Record(Type.String(), Type.Unknown()),
207
- }),
208
- )
209
- // No-op b/c Viem is happy w/ the encoded version too.
210
- .Decode((it) => it)
211
- // Encode the TypedDataDefinition into our json-serialized format.
212
- .Encode(({ domain, types, primaryType, message }) => {
213
- return {
214
- domain: {
215
- ...domain,
216
- chainId:
217
- typeof domain?.chainId === "bigint"
218
- ? Number(domain.chainId)
219
- : domain?.chainId,
220
- },
221
- types,
222
- primaryType,
223
- message: JSON.parse(
224
- JSON.stringify(message, (_, v) =>
225
- typeof v === "bigint" ? toHex(v) : v,
226
- ),
227
- ),
228
- };
229
- });
230
-
231
- export const TypeSignatureRequest = Type.Union([
232
- Type.Object({
233
- type: Type.Literal("personal_sign"),
234
- data: Type.Union([
235
- Type.String({ minLength: 1 }),
236
- Type.Object({
237
- raw: TypeHex(),
238
- }),
239
- ]),
240
- }),
241
- Type.Object({
242
- type: Type.Literal("eth_signTypedData_v4"),
243
- data: TTypedDataDefinition,
244
- }),
245
- ]);
246
-
247
- export const TypeCallId = Type.Transform(TypeHex())
248
- .Decode((value) => {
249
- return {
250
- chainId: toHex(hexToBigInt(slice(value, 0, 32))),
251
- hash: slice(value, 32),
252
- };
253
- })
254
- .Encode(({ chainId, hash }) => {
255
- const chainIdPadded = pad(chainId, { size: 32 });
256
- return concat([chainIdPadded, hash]);
257
- });