Skip to content

Commit 8b829c4

Browse files
committed
feat(providers): add optional context record
1 parent 7b3f3c9 commit 8b829c4

File tree

1 file changed

+31
-28
lines changed

1 file changed

+31
-28
lines changed

packages/providers/src/validation.ts

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -27,75 +27,78 @@ export const AddChainRequestParams = z
2727
.strict();
2828

2929
// Params
30-
export const AccountsRequestParamsSchema = z
31-
.object({
30+
export const RequestWithContext = z.object({
31+
context: z.record(z.any()).default({}).optional()
32+
}).strict()
33+
export const AccountsRequestParamsSchema = RequestWithContext
34+
.extend({
3235
method: z.literal("mina_accounts"),
3336
})
3437
.strict();
35-
export const RequestAccountsRequestParamsSchema = z
36-
.object({
38+
export const RequestAccountsRequestParamsSchema = RequestWithContext
39+
.extend({
3740
method: z.literal("mina_requestAccounts"),
3841
})
3942
.strict();
40-
export const ChainIdRequestParamsSchema = z
41-
.object({ method: z.literal("mina_chainId") })
43+
export const ChainIdRequestParamsSchema = RequestWithContext
44+
.extend({ method: z.literal("mina_chainId") })
4245
.strict();
43-
export const ChainInformationRequestParamsSchema = z
44-
.object({ method: z.literal("mina_chainInformation") })
46+
export const ChainInformationRequestParamsSchema = RequestWithContext
47+
.extend({ method: z.literal("mina_chainInformation") })
4548
.strict();
46-
export const GetBalanceRequestParamsSchema = z
47-
.object({ method: z.literal("mina_getBalance") })
49+
export const GetBalanceRequestParamsSchema = RequestWithContext
50+
.extend({ method: z.literal("mina_getBalance") })
4851
.strict();
49-
export const SignRequestParamsSchema = z
50-
.object({
52+
export const SignRequestParamsSchema = RequestWithContext
53+
.extend({
5154
method: z.literal("mina_sign"),
5255
params: z.array(z.string()),
5356
})
5457
.strict();
55-
export const SignFieldsRequestParamsSchema = z
56-
.object({
58+
export const SignFieldsRequestParamsSchema = RequestWithContext
59+
.extend({
5760
method: z.literal("mina_signFields"),
5861
params: z.array(z.array(FieldSchema)),
5962
})
6063
.strict();
61-
export const SignTransactionRequestParamsSchema = z
62-
.object({
64+
export const SignTransactionRequestParamsSchema = RequestWithContext
65+
.extend({
6366
method: z.literal("mina_signTransaction"),
6467
params: z.array(z.union([TransactionPayload, ZkAppCommandPayload])),
6568
})
6669
.strict();
67-
export const SendTransactionRequestParamsSchema = z
68-
.object({
70+
export const SendTransactionRequestParamsSchema = RequestWithContext
71+
.extend({
6972
method: z.literal("mina_sendTransaction"),
7073
params: z.array(SignedTransactionSchema),
7174
})
7275
.strict();
73-
export const CreateNullifierRequestParamsSchema = z
74-
.object({
76+
export const CreateNullifierRequestParamsSchema = RequestWithContext
77+
.extend({
7578
method: z.literal("mina_createNullifier"),
7679
params: z.array(z.array(FieldSchema)),
7780
})
7881
.strict();
79-
export const SwitchChainRequestParamsSchema = z
80-
.object({
82+
export const SwitchChainRequestParamsSchema = RequestWithContext
83+
.extend({
8184
method: z.literal("mina_switchChain"),
8285
params: z.array(z.string()),
8386
})
8487
.strict();
85-
export const AddChainRequestParamsSchema = z
86-
.object({
88+
export const AddChainRequestParamsSchema = RequestWithContext
89+
.extend({
8790
method: z.literal("mina_addChain"),
8891
params: z.array(AddChainRequestParams),
8992
})
9093
.strict();
91-
export const SetStateRequestParamsSchema = z
92-
.object({
94+
export const SetStateRequestParamsSchema = RequestWithContext
95+
.extend({
9396
method: z.literal("mina_setState"),
9497
params: z.array(JsonSchema),
9598
})
9699
.strict();
97-
export const GetStateRequestParamsSchema = z
98-
.object({
100+
export const GetStateRequestParamsSchema = RequestWithContext
101+
.extend({
99102
method: z.literal("mina_getState"),
100103
params: z.array(z.string()),
101104
})

0 commit comments

Comments
 (0)