@account-kit/wallet-client 0.1.0-alpha.2 → 0.1.0-alpha.4
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.
- package/dist/esm/capabilities/index.d.ts +5 -2
- package/dist/esm/capabilities/index.js +1 -1
- package/dist/esm/capabilities/index.js.map +1 -1
- package/dist/esm/capabilities/overrides.js +8 -8
- package/dist/esm/capabilities/overrides.js.map +1 -1
- package/dist/esm/capabilities/permissions/index.d.ts +10 -3
- package/dist/esm/capabilities/permissions/index.js +11 -2
- package/dist/esm/capabilities/permissions/index.js.map +1 -1
- package/dist/esm/capabilities/permissions/mav2.d.ts +2 -2
- package/dist/esm/capabilities/permissions/mav2.js +9 -1
- package/dist/esm/capabilities/permissions/mav2.js.map +1 -1
- package/dist/esm/client/actions/grantPermissions.d.ts +57 -3
- package/dist/esm/client/actions/grantPermissions.js +1 -0
- package/dist/esm/client/actions/grantPermissions.js.map +1 -1
- package/dist/esm/client/actions/requestAccount.js +2 -2
- package/dist/esm/client/actions/requestAccount.js.map +1 -1
- package/dist/esm/client/actions/signSignatureRequest.d.ts +4 -1
- package/dist/esm/client/actions/signSignatureRequest.js +22 -1
- package/dist/esm/client/actions/signSignatureRequest.js.map +1 -1
- package/dist/esm/client/client.e2e-test.js +13 -19
- package/dist/esm/client/client.e2e-test.js.map +1 -1
- package/dist/esm/client/index.d.ts +4 -3
- package/dist/esm/client/index.js +2 -2
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/exports/index.d.ts +2 -2
- package/dist/esm/exports/index.js +1 -1
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/isomorphic/actions/createSession.js +25 -7
- package/dist/esm/isomorphic/actions/createSession.js.map +1 -1
- package/dist/esm/isomorphic/actions/prepareCalls.js +35 -12
- package/dist/esm/isomorphic/actions/prepareCalls.js.map +1 -1
- package/dist/esm/isomorphic/actions/sendPreparedCalls.js +26 -6
- package/dist/esm/isomorphic/actions/sendPreparedCalls.js.map +1 -1
- package/dist/esm/isomorphic/client.d.ts +11 -5
- package/dist/esm/isomorphic/utils/7702.d.ts +11 -0
- package/dist/esm/isomorphic/utils/7702.js +26 -0
- package/dist/esm/isomorphic/utils/7702.js.map +1 -0
- package/dist/esm/isomorphic/utils/createAccount.d.ts +2 -1
- package/dist/esm/isomorphic/utils/createAccount.js +30 -5
- package/dist/esm/isomorphic/utils/createAccount.js.map +1 -1
- package/dist/esm/isomorphic/utils/createDummySigner.js +3 -3
- package/dist/esm/isomorphic/utils/createDummySigner.js.map +1 -1
- package/dist/esm/isomorphic/utils/parsePermissionsContext.d.ts +2 -1
- package/dist/esm/isomorphic/utils/parsePermissionsContext.js +17 -5
- package/dist/esm/isomorphic/utils/parsePermissionsContext.js.map +1 -1
- package/dist/esm/local/client.js +2 -1
- package/dist/esm/local/client.js.map +1 -1
- package/dist/esm/remote/client.js +6 -2
- package/dist/esm/remote/client.js.map +1 -1
- package/dist/esm/rpc/examples.d.ts +230 -0
- package/dist/esm/rpc/examples.js +314 -0
- package/dist/esm/rpc/examples.js.map +1 -0
- package/dist/esm/rpc/request.d.ts +48 -17
- package/dist/esm/rpc/request.js +53 -14
- package/dist/esm/rpc/request.js.map +1 -1
- package/dist/esm/rpc/schema.d.ts +42 -11
- package/dist/esm/schemas.d.ts +29 -7
- package/dist/esm/schemas.js +120 -38
- package/dist/esm/schemas.js.map +1 -1
- package/dist/types/capabilities/index.d.ts +5 -2
- package/dist/types/capabilities/index.d.ts.map +1 -1
- package/dist/types/capabilities/overrides.d.ts.map +1 -1
- package/dist/types/capabilities/permissions/index.d.ts +10 -3
- package/dist/types/capabilities/permissions/index.d.ts.map +1 -1
- package/dist/types/capabilities/permissions/mav2.d.ts +2 -2
- package/dist/types/capabilities/permissions/mav2.d.ts.map +1 -1
- package/dist/types/client/actions/grantPermissions.d.ts +57 -3
- package/dist/types/client/actions/grantPermissions.d.ts.map +1 -1
- package/dist/types/client/actions/requestAccount.d.ts.map +1 -1
- package/dist/types/client/actions/signSignatureRequest.d.ts +4 -1
- package/dist/types/client/actions/signSignatureRequest.d.ts.map +1 -1
- package/dist/types/client/index.d.ts +4 -3
- package/dist/types/client/index.d.ts.map +1 -1
- package/dist/types/exports/index.d.ts +2 -2
- package/dist/types/exports/index.d.ts.map +1 -1
- package/dist/types/isomorphic/actions/createSession.d.ts.map +1 -1
- package/dist/types/isomorphic/actions/prepareCalls.d.ts.map +1 -1
- package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts.map +1 -1
- package/dist/types/isomorphic/client.d.ts +11 -5
- package/dist/types/isomorphic/client.d.ts.map +1 -1
- package/dist/types/isomorphic/utils/7702.d.ts +12 -0
- package/dist/types/isomorphic/utils/7702.d.ts.map +1 -0
- package/dist/types/isomorphic/utils/createAccount.d.ts +2 -1
- package/dist/types/isomorphic/utils/createAccount.d.ts.map +1 -1
- package/dist/types/isomorphic/utils/createDummySigner.d.ts.map +1 -1
- package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts +2 -1
- package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts.map +1 -1
- package/dist/types/remote/client.d.ts.map +1 -1
- package/dist/types/rpc/examples.d.ts +231 -0
- package/dist/types/rpc/examples.d.ts.map +1 -0
- package/dist/types/rpc/request.d.ts +48 -17
- package/dist/types/rpc/request.d.ts.map +1 -1
- package/dist/types/rpc/schema.d.ts +42 -11
- package/dist/types/rpc/schema.d.ts.map +1 -1
- package/dist/types/schemas.d.ts +29 -7
- package/dist/types/schemas.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/capabilities/index.ts +5 -8
- package/src/capabilities/overrides.ts +23 -8
- package/src/capabilities/permissions/index.ts +21 -5
- package/src/capabilities/permissions/mav2.ts +12 -2
- package/src/client/actions/grantPermissions.ts +57 -3
- package/src/client/actions/requestAccount.ts +2 -3
- package/src/client/actions/signSignatureRequest.ts +31 -3
- package/src/client/client.e2e-test.ts +14 -21
- package/src/client/index.ts +12 -10
- package/src/exports/index.ts +2 -1
- package/src/isomorphic/actions/createSession.ts +28 -7
- package/src/isomorphic/actions/prepareCalls.ts +38 -11
- package/src/isomorphic/actions/sendPreparedCalls.ts +47 -20
- package/src/isomorphic/utils/7702.ts +58 -0
- package/src/isomorphic/utils/createAccount.ts +38 -6
- package/src/isomorphic/utils/createDummySigner.ts +3 -2
- package/src/isomorphic/utils/parsePermissionsContext.ts +23 -7
- package/src/local/client.ts +2 -3
- package/src/remote/client.ts +12 -2
- package/src/rpc/examples.ts +343 -0
- package/src/rpc/request.ts +75 -26
- package/src/schemas.ts +218 -87
package/src/schemas.ts
CHANGED
|
@@ -14,33 +14,54 @@ const BASE_64_URL_REGEX = /^[A-Za-z0-9_-]+$/; // Matches base64url encoded strin
|
|
|
14
14
|
FormatRegistry.Set("base64url", (value) => BASE_64_URL_REGEX.test(value));
|
|
15
15
|
|
|
16
16
|
export const TypeHex = (options?: SchemaOptions) =>
|
|
17
|
-
Type.TemplateLiteral("0x${string}",
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
Type.TemplateLiteral("0x${string}", {
|
|
18
|
+
...options,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export const TypeAddress = Type.TemplateLiteral("0x${string}", {});
|
|
22
|
+
|
|
23
|
+
export const TypeUuid = Type.String({
|
|
24
|
+
format: "uuid",
|
|
25
|
+
});
|
|
26
|
+
|
|
20
27
|
export const TypeBase64UrlEncodedString = Type.String({
|
|
21
28
|
format: "base64url",
|
|
22
29
|
});
|
|
23
30
|
|
|
24
31
|
// BigInt is not json-serializable, so it must be encoded as a string.
|
|
25
|
-
export const TypeU256 = Type.Transform(Type.String())
|
|
32
|
+
export const TypeU256 = Type.Transform(Type.String({}))
|
|
26
33
|
.Decode((value) => BigInt(value))
|
|
27
34
|
.Encode((value) => toHex(value));
|
|
28
35
|
|
|
29
|
-
export const TypeU32 = Type.Transform(Type.String())
|
|
36
|
+
export const TypeU32 = Type.Transform(Type.String({}))
|
|
30
37
|
.Decode((value) => Number.parseInt(value, 16))
|
|
31
38
|
.Encode((value) => toHex(value));
|
|
32
39
|
|
|
33
40
|
export const TypeUserOperationRequest_v6 = Type.Object({
|
|
34
41
|
sender: TypeAddress,
|
|
35
42
|
nonce: TypeHex(),
|
|
36
|
-
initCode: Type.Union([
|
|
43
|
+
initCode: Type.Union([
|
|
44
|
+
TypeHex({
|
|
45
|
+
title: "Present",
|
|
46
|
+
}),
|
|
47
|
+
Type.Literal("0x", {
|
|
48
|
+
title: "Absent",
|
|
49
|
+
}),
|
|
50
|
+
]),
|
|
37
51
|
callData: TypeHex(),
|
|
38
52
|
callGasLimit: TypeHex(),
|
|
39
53
|
verificationGasLimit: TypeHex(),
|
|
40
54
|
preVerificationGas: TypeHex(),
|
|
41
55
|
maxFeePerGas: TypeHex(),
|
|
42
56
|
maxPriorityFeePerGas: TypeHex(),
|
|
43
|
-
paymasterAndData: Type.Union([
|
|
57
|
+
paymasterAndData: Type.Union([
|
|
58
|
+
TypeHex({
|
|
59
|
+
title: "Present",
|
|
60
|
+
}),
|
|
61
|
+
Type.Literal("0x", {
|
|
62
|
+
title: "Absent",
|
|
63
|
+
}),
|
|
64
|
+
]),
|
|
44
65
|
signature: TypeHex(),
|
|
45
66
|
});
|
|
46
67
|
|
|
@@ -62,6 +83,21 @@ export const TypeUserOperationRequest_v7 = Type.Object({
|
|
|
62
83
|
signature: TypeHex(),
|
|
63
84
|
});
|
|
64
85
|
|
|
86
|
+
export const TypeEip7702AuthRequest = Type.Object({
|
|
87
|
+
chainId: Type.Integer(),
|
|
88
|
+
address: TypeAddress,
|
|
89
|
+
nonce: Type.Integer(),
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
export const TypeEip7702AuthExtendedFields = Type.Object({
|
|
93
|
+
chainId: TypeHex(),
|
|
94
|
+
nonce: TypeHex(),
|
|
95
|
+
address: TypeAddress,
|
|
96
|
+
r: TypeHex(),
|
|
97
|
+
s: TypeHex(),
|
|
98
|
+
yParity: TypeHex(),
|
|
99
|
+
});
|
|
100
|
+
|
|
65
101
|
export const TypeWebAuthnPublicKey = Type.Object({
|
|
66
102
|
x: TypeU256,
|
|
67
103
|
y: TypeU256,
|
|
@@ -70,54 +106,89 @@ export const TypeWebAuthnPublicKey = Type.Object({
|
|
|
70
106
|
export const TypePersistedInitcode = Type.Object({
|
|
71
107
|
factoryAddress: TypeAddress,
|
|
72
108
|
initcode: Type.Union([
|
|
73
|
-
Type.Object(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
109
|
+
Type.Object(
|
|
110
|
+
{
|
|
111
|
+
factoryType: Type.Literal("unknown", { title: "Unknown factory type" }),
|
|
112
|
+
factoryData: TypeHex({}),
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
title: "Unknown factory type",
|
|
116
|
+
},
|
|
117
|
+
),
|
|
118
|
+
Type.Object(
|
|
119
|
+
{
|
|
120
|
+
factoryType: Type.Union([
|
|
121
|
+
Type.Literal("LightAccountV2.0.0"),
|
|
122
|
+
Type.Literal("LightAccountV1.1.0"),
|
|
123
|
+
Type.Literal("LightAccountV1.0.2"),
|
|
124
|
+
Type.Literal("LightAccountV1.0.1"),
|
|
125
|
+
]),
|
|
126
|
+
salt: TypeU256,
|
|
127
|
+
initialOwner: TypeAddress,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
title: "Light Account",
|
|
131
|
+
},
|
|
132
|
+
),
|
|
133
|
+
Type.Object(
|
|
134
|
+
{
|
|
135
|
+
factoryType: Type.Union([
|
|
136
|
+
Type.Literal("MAv1.0.0-MultiOwner"),
|
|
137
|
+
Type.Literal("LightAccountV2.0.0-MultiOwner"),
|
|
138
|
+
]),
|
|
139
|
+
salt: TypeU256,
|
|
140
|
+
initialOwners: Type.Array(TypeAddress),
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
title: "Multi-Owner Modular Account",
|
|
144
|
+
},
|
|
145
|
+
),
|
|
146
|
+
Type.Object(
|
|
147
|
+
{
|
|
148
|
+
factoryType: Type.Literal("MAv1.0.0-MultiSig"),
|
|
149
|
+
salt: TypeU256,
|
|
150
|
+
initialOwners: Type.Array(TypeAddress),
|
|
151
|
+
threshold: TypeU256,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
title: "Multi-Sig Modular Account",
|
|
155
|
+
},
|
|
156
|
+
),
|
|
101
157
|
Type.Intersect([
|
|
102
158
|
Type.Object({
|
|
103
159
|
factoryType: Type.Literal("MAv2.0.0"),
|
|
104
160
|
salt: TypeU256,
|
|
105
161
|
}),
|
|
106
162
|
Type.Union([
|
|
107
|
-
Type.Object(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
163
|
+
Type.Object(
|
|
164
|
+
{
|
|
165
|
+
mav2type: Type.Literal("ma-ssv"),
|
|
166
|
+
initialOwner: TypeAddress,
|
|
167
|
+
entityId: TypeU32,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
title: "Modular Account V2 SSV",
|
|
171
|
+
},
|
|
172
|
+
),
|
|
173
|
+
Type.Object(
|
|
174
|
+
{
|
|
175
|
+
mav2type: Type.Literal("sma-b"),
|
|
176
|
+
initialOwner: TypeAddress,
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
title: "Modular Account V2 SMA-B",
|
|
180
|
+
},
|
|
181
|
+
),
|
|
182
|
+
Type.Object(
|
|
183
|
+
{
|
|
184
|
+
mav2type: Type.Literal("ma-webauthn"),
|
|
185
|
+
initialOwner: TypeWebAuthnPublicKey,
|
|
186
|
+
entityId: TypeU32,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
title: "Modular Account V2 WebAuthn",
|
|
190
|
+
},
|
|
191
|
+
),
|
|
121
192
|
]),
|
|
122
193
|
]),
|
|
123
194
|
]),
|
|
@@ -125,20 +196,32 @@ export const TypePersistedInitcode = Type.Object({
|
|
|
125
196
|
|
|
126
197
|
export const TypeSerializedInitcode = Type.Object({
|
|
127
198
|
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
|
-
|
|
134
|
-
|
|
135
|
-
Type.Literal("
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
Type.Literal("
|
|
199
|
+
Type.Literal("LightAccountV1.0.1", { title: "Light Account v1.0.1" }),
|
|
200
|
+
Type.Literal("LightAccountV1.0.2", { title: "Light Account v1.0.2" }),
|
|
201
|
+
Type.Literal("LightAccountV1.1.0", { title: "Light Account v1.1.0" }),
|
|
202
|
+
Type.Literal("LightAccountV2.0.0", { title: "Light Account v2.0.0" }),
|
|
203
|
+
Type.Literal("LightAccountV2.0.0-MultiOwner", {
|
|
204
|
+
title: "Light Account v2.0.0 MultiOwner",
|
|
205
|
+
}),
|
|
206
|
+
Type.Literal("MAv1.0.0-MultiOwner", {
|
|
207
|
+
title: "Modular Account v1.0.0 MultiOwner",
|
|
208
|
+
}),
|
|
209
|
+
Type.Literal("MAv1.0.0-MultiSig", {
|
|
210
|
+
title: "Modular Account v1.0.0 MultiSig",
|
|
211
|
+
}),
|
|
212
|
+
Type.Literal("MAv2.0.0-sma-b", {
|
|
213
|
+
title: "Modular Account v2.0.0 SMA-B",
|
|
214
|
+
}),
|
|
215
|
+
Type.Literal("MAv2.0.0-ma-ssv", {
|
|
216
|
+
title: "Modular Account v2.0.0 SSV",
|
|
217
|
+
}),
|
|
218
|
+
Type.Literal("MAv2.0.0-ma-webauthn", {
|
|
219
|
+
title: "Modular Account v2.0.0 WebAuthn",
|
|
220
|
+
}),
|
|
221
|
+
Type.Literal("unknown", { title: "Unknown factory type" }),
|
|
139
222
|
]),
|
|
140
223
|
factoryAddress: TypeAddress,
|
|
141
|
-
factoryData: TypeHex(),
|
|
224
|
+
factoryData: TypeHex({}),
|
|
142
225
|
});
|
|
143
226
|
|
|
144
227
|
export const TypeCounterfactualInfo = Type.Intersect([
|
|
@@ -146,27 +229,55 @@ export const TypeCounterfactualInfo = Type.Intersect([
|
|
|
146
229
|
accountAddress: TypeAddress,
|
|
147
230
|
}),
|
|
148
231
|
Type.Union([
|
|
149
|
-
Type.Intersect(
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
232
|
+
Type.Intersect(
|
|
233
|
+
[
|
|
234
|
+
Type.Object({
|
|
235
|
+
type: Type.Literal("sca"),
|
|
236
|
+
}),
|
|
237
|
+
TypePersistedInitcode,
|
|
238
|
+
],
|
|
239
|
+
{
|
|
240
|
+
title: "Smart Contract Account",
|
|
241
|
+
},
|
|
242
|
+
),
|
|
243
|
+
Type.Object(
|
|
244
|
+
{
|
|
245
|
+
type: Type.Literal("7702"),
|
|
246
|
+
implementationAddress: TypeAddress,
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
title: "7702 Account",
|
|
250
|
+
},
|
|
251
|
+
),
|
|
158
252
|
]),
|
|
159
253
|
]);
|
|
160
254
|
export type TypeCounterfactualInfo = Static<typeof TypeCounterfactualInfo>;
|
|
161
255
|
|
|
162
256
|
export const TypeCreationOptions = Type.Optional(
|
|
163
257
|
Type.Union([
|
|
164
|
-
Type.Object(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
258
|
+
Type.Object(
|
|
259
|
+
{
|
|
260
|
+
// Optional b/c `sma-b` is the default if no accountType is specified.
|
|
261
|
+
accountType: Type.Optional(Type.Literal("sma-b")),
|
|
262
|
+
salt: Type.Optional(TypeHex()),
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
title: "SMA-B account type",
|
|
266
|
+
},
|
|
267
|
+
),
|
|
268
|
+
Type.Object(
|
|
269
|
+
{
|
|
270
|
+
accountType: Type.Literal("7702"),
|
|
271
|
+
// TODO: Add support for specifying a delegation address.
|
|
272
|
+
// Currently we only support delegating to MAv2, and it's important
|
|
273
|
+
// that wallet applications maintain a strict shortlist of well-known
|
|
274
|
+
// accounts: https://github.com/ethereum/ERCs/pull/947/files#diff-dab085f963ca621595044bcbc0922705aa38b69f5bf8770dcb3d0496a633efcfR189
|
|
275
|
+
// delegation: TypeAddress,
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
title: "7702 account type",
|
|
279
|
+
},
|
|
280
|
+
),
|
|
170
281
|
]),
|
|
171
282
|
);
|
|
172
283
|
export type TypeCreationOptions = Static<typeof TypeCreationOptions>;
|
|
@@ -177,8 +288,11 @@ export type TypeAccountType = Exclude<
|
|
|
177
288
|
>["accountType"];
|
|
178
289
|
|
|
179
290
|
export const KeySigner = Type.Object({
|
|
180
|
-
type: Type.Union([
|
|
181
|
-
|
|
291
|
+
type: Type.Union([
|
|
292
|
+
Type.Literal("secp256k1", { title: "Secp256k1" }),
|
|
293
|
+
Type.Literal("contract", { title: "Contract" }),
|
|
294
|
+
]),
|
|
295
|
+
publicKey: TypeHex({}),
|
|
182
296
|
});
|
|
183
297
|
export type KeySigner = Static<typeof KeySigner>;
|
|
184
298
|
|
|
@@ -186,7 +300,7 @@ export const TTypedDataDefinition = Type.Transform(
|
|
|
186
300
|
Type.Object({
|
|
187
301
|
domain: Type.Optional(
|
|
188
302
|
Type.Object({
|
|
189
|
-
chainId: Type.Optional(Type.
|
|
303
|
+
chainId: Type.Optional(Type.Integer()),
|
|
190
304
|
name: Type.Optional(Type.String()),
|
|
191
305
|
salt: Type.Optional(TypeHex()),
|
|
192
306
|
verifyingContract: Type.Optional(TypeAddress),
|
|
@@ -228,19 +342,36 @@ export const TTypedDataDefinition = Type.Transform(
|
|
|
228
342
|
};
|
|
229
343
|
});
|
|
230
344
|
|
|
231
|
-
|
|
232
|
-
|
|
345
|
+
const TypePersonalSignSignatureRequest = Type.Object(
|
|
346
|
+
{
|
|
233
347
|
type: Type.Literal("personal_sign"),
|
|
234
348
|
data: Type.Union([
|
|
235
|
-
Type.String({ minLength: 1 }),
|
|
236
|
-
Type.Object(
|
|
237
|
-
|
|
238
|
-
|
|
349
|
+
Type.String({ minLength: 1, title: "Message" }),
|
|
350
|
+
Type.Object(
|
|
351
|
+
{
|
|
352
|
+
raw: TypeHex(),
|
|
353
|
+
},
|
|
354
|
+
{ title: "Raw message" },
|
|
355
|
+
),
|
|
239
356
|
]),
|
|
240
|
-
}
|
|
241
|
-
|
|
357
|
+
},
|
|
358
|
+
{ title: "Personal sign" },
|
|
359
|
+
);
|
|
360
|
+
|
|
361
|
+
const TypeTypedDataSignatureRequest = Type.Object(
|
|
362
|
+
{
|
|
242
363
|
type: Type.Literal("eth_signTypedData_v4"),
|
|
243
364
|
data: TTypedDataDefinition,
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
title: "Typed data",
|
|
368
|
+
},
|
|
369
|
+
);
|
|
370
|
+
|
|
371
|
+
export const TypeSignatureRequest = Type.Intersect([
|
|
372
|
+
Type.Union([TypePersonalSignSignatureRequest, TypeTypedDataSignatureRequest]),
|
|
373
|
+
Type.Object({
|
|
374
|
+
authorizationRequest: Type.Optional(TypeEip7702AuthRequest),
|
|
244
375
|
}),
|
|
245
376
|
]);
|
|
246
377
|
|