RuleSchema: ZodDiscriminatedUnion<
"operation",
[
ZodObject<
{
action: ZodEnum<["reject", "accept"]>;
criteria: ZodArray<
ZodDiscriminatedUnion<
"type",
[
ZodObject<
{
ethValue: ZodString;
operator: ZodEnum<[(...), (...), (...), (...), (...)]>;
type: ZodLiteral<"ethValue">;
},
"strip",
ZodTypeAny,
{
ethValue: string;
operator: ">"
| ">="
| "<"
| "<="
| "==";
type: "ethValue";
},
{
ethValue: string;
operator: ">"
| ">="
| "<"
| "<="
| "==";
type: "ethValue";
},
>,
ZodObject<
{
addresses: ZodArray<ZodEffects<(...), (...), (...)>, "many">;
operator: ZodEnum<[(...), (...)]>;
type: ZodLiteral<"evmAddress">;
},
"strip",
ZodTypeAny,
{
addresses: `0x${(...)}`[];
operator: "in" | "not in";
type: "evmAddress";
},
{
addresses: string[];
operator: "in"
| "not in";
type: "evmAddress";
},
>,
ZodObject<
{
abi: ZodUnion<[(...), (...)]>;
conditions: ZodArray<
ZodObject<(...), (...), (...), (...), (...)>,
"many",
>;
type: ZodLiteral<"evmData">;
},
"strip",
ZodTypeAny,
{
abi: "erc20"
| "erc721"
| "erc1155"
| readonly (...)[];
conditions: { function: ...; params?: ... }[];
type: "evmData";
},
{
abi: "erc20"
| "erc721"
| "erc1155"
| readonly (...)[];
conditions: { function: ...; params?: ... }[];
type: "evmData";
},
>,
],
>,
"many",
>;
operation: ZodLiteral<"signEvmTransaction">;
},
"strip",
ZodTypeAny,
{
action: "reject"
| "accept";
criteria: (
| {
ethValue: string;
operator: ">"
| ">="
| "<"
| "<="
| "==";
type: "ethValue";
}
| {
addresses: `0x${string}`[];
operator: "in"
| "not in";
type: "evmAddress";
}
| {
abi: | "erc20"
| "erc721"
| "erc1155"
| readonly (
| { inputs: ...; name: ...; type: ... }
| { anonymous?: ...; inputs: ...; name: ...; type: ... }
| (
{ payable?: boolean | undefined; constant?: boolean | undefined; gas?: number | undefined; } & ({ inputs: readonly AbiParameter[]; outputs: readonly AbiParameter[]; type: "function"; name: string; stateMutability: "pure" | ... 2 more ... | "payable"; } | { ...; } | { ...; } | { ...; })
)
)[];
conditions: { function: string; params?: (...)[] }[];
type: "evmData";
}
)[];
operation: "signEvmTransaction";
},
{
action: "reject"
| "accept";
criteria: (
| {
ethValue: string;
operator: ">"
| ">="
| "<"
| "<="
| "==";
type: "ethValue";
}
| {
addresses: string[];
operator: "in"
| "not in";
type: "evmAddress";
}
| {
abi: "erc20"
| "erc721"
| "erc1155"
| readonly unknown[];
conditions: { function: string; params?: (...)[] }[];
type: "evmData";
}
)[];
operation: "signEvmTransaction";
},
>,
ZodObject<
{
action: ZodEnum<["reject", "accept"]>;
operation: ZodLiteral<"signEvmHash">;
},
"strip",
ZodTypeAny,
{ action: "reject"
| "accept"; operation: "signEvmHash" },
{ action: "reject" | "accept"; operation: "signEvmHash" },
>,
ZodObject<
{
action: ZodEnum<["reject", "accept"]>;
criteria: ZodArray<
ZodDiscriminatedUnion<
"type",
[
ZodObject<
{ match: ZodString; type: ZodLiteral<"evmMessage"> },
"strip",
ZodTypeAny,
{ match: string; type: "evmMessage" },
{ match: string; type: "evmMessage" },
>,
],
>,
"many",
>;
operation: ZodLiteral<"signEvmMessage">;
},
"strip",
ZodTypeAny,
{
action: "reject"
| "accept";
criteria: { match: string; type: "evmMessage" }[];
operation: "signEvmMessage";
},
{
action: "reject"
| "accept";
criteria: { match: string; type: "evmMessage" }[];
operation: "signEvmMessage";
},
>,
ZodObject<
{
action: ZodEnum<["reject", "accept"]>;
criteria: ZodArray<
ZodDiscriminatedUnion<
"type",
[
ZodObject<
{
ethValue: ZodString;
operator: ZodEnum<[(...), (...), (...), (...), (...)]>;
type: ZodLiteral<"ethValue">;
},
"strip",
ZodTypeAny,
{
ethValue: string;
operator: ">"
| ">="
| "<"
| "<="
| "==";
type: "ethValue";
},
{
ethValue: string;
operator: ">"
| ">="
| "<"
| "<="
| "==";
type: "ethValue";
},
>,
ZodObject<
{
addresses: ZodArray<ZodEffects<(...), (...), (...)>, "many">;
operator: ZodEnum<[(...), (...)]>;
type: ZodLiteral<"evmAddress">;
},
"strip",
ZodTypeAny,
{
addresses: `0x${(...)}`[];
operator: "in" | "not in";
type: "evmAddress";
},
{
addresses: string[];
operator: "in"
| "not in";
type: "evmAddress";
},
>,
ZodObject<
{
networks: ZodArray<ZodEnum<(...)>, "many">;
operator: ZodEnum<[(...), (...)]>;
type: ZodLiteral<"evmNetwork">;
},
"strip",
ZodTypeAny,
{
networks: ((...) | (...))[];
operator: "in" | "not in";
type: "evmNetwork";
},
{
networks: ((...) | (...))[];
operator: "in" | "not in";
type: "evmNetwork";
},
>,
ZodObject<
{
abi: ZodUnion<[(...), (...)]>;
conditions: ZodArray<
ZodObject<(...), (...), (...), (...), (...)>,
"many",
>;
type: ZodLiteral<"evmData">;
},
"strip",
ZodTypeAny,
{
abi: "erc20"
| "erc721"
| "erc1155"
| readonly (...)[];
conditions: { function: ...; params?: ... }[];
type: "evmData";
},
{
abi: "erc20"
| "erc721"
| "erc1155"
| readonly (...)[];
conditions: { function: ...; params?: ... }[];
type: "evmData";
},
>,
],
>,
"many",
>;
operation: ZodLiteral<"sendEvmTransaction">;
},
"strip",
ZodTypeAny,
{
action: "reject"
| "accept";
criteria: (
| {
ethValue: string;
operator: ">"
| ">="
| "<"
| "<="
| "==";
type: "ethValue";
}
| {
addresses: `0x${string}`[];
operator: "in"
| "not in";
type: "evmAddress";
}
| {
networks: ("base-sepolia" | "base")[];
operator: "in" | "not in";
type: "evmNetwork";
}
| {
abi: | "erc20"
| "erc721"
| "erc1155"
| readonly (
| { inputs: ...; name: ...; type: ... }
| { anonymous?: ...; inputs: ...; name: ...; type: ... }
| (
{ payable?: boolean | undefined; constant?: boolean | undefined; gas?: number | undefined; } & ({ inputs: readonly AbiParameter[]; outputs: readonly AbiParameter[]; type: "function"; name: string; stateMutability: "pure" | ... 2 more ... | "payable"; } | { ...; } | { ...; } | { ...; })
)
)[];
conditions: { function: string; params?: (...)[] }[];
type: "evmData";
}
)[];
operation: "sendEvmTransaction";
},
{
action: "reject"
| "accept";
criteria: (
| {
ethValue: string;
operator: ">"
| ">="
| "<"
| "<="
| "==";
type: "ethValue";
}
| {
addresses: string[];
operator: "in"
| "not in";
type: "evmAddress";
}
| {
networks: ("base-sepolia" | "base")[];
operator: "in" | "not in";
type: "evmNetwork";
}
| {
abi: "erc20"
| "erc721"
| "erc1155"
| readonly unknown[];
conditions: { function: string; params?: (...)[] }[];
type: "evmData";
}
)[];
operation: "sendEvmTransaction";
},
>,
ZodObject<
{
action: ZodEnum<["reject", "accept"]>;
criteria: ZodArray<
ZodDiscriminatedUnion<
"type",
[
ZodObject<
{
addresses: ZodArray<ZodString, "many">;
operator: ZodEnum<[(...), (...)]>;
type: ZodLiteral<"solAddress">;
},
"strip",
ZodTypeAny,
{
addresses: string[];
operator: "in"
| "not in";
type: "solAddress";
},
{
addresses: string[];
operator: "in"
| "not in";
type: "solAddress";
},
>,
],
>,
"many",
>;
operation: ZodLiteral<"signSolTransaction">;
},
"strip",
ZodTypeAny,
{
action: "reject"
| "accept";
criteria: {
addresses: string[];
operator: "in" | "not in";
type: "solAddress";
}[];
operation: "signSolTransaction";
},
{
action: "reject"
| "accept";
criteria: {
addresses: string[];
operator: "in" | "not in";
type: "solAddress";
}[];
operation: "signSolTransaction";
},
>,
],
> = ...
Schema for policy rules