@nucypher/taco 0.6.0-alpha.3 → 0.7.0-alpha.0
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/cjs/conditions/base/address-allowlist.d.ts +10 -0
- package/dist/cjs/conditions/base/address-allowlist.js +19 -0
- package/dist/cjs/conditions/base/address-allowlist.js.map +1 -0
- package/dist/cjs/conditions/base/index.d.ts +2 -0
- package/dist/cjs/conditions/base/index.js +3 -1
- package/dist/cjs/conditions/base/index.js.map +1 -1
- package/dist/cjs/conditions/base/signing.d.ts +10 -0
- package/dist/cjs/conditions/base/signing.js +32 -0
- package/dist/cjs/conditions/base/signing.js.map +1 -0
- package/dist/cjs/conditions/condition-factory.js +8 -0
- package/dist/cjs/conditions/condition-factory.js.map +1 -1
- package/dist/cjs/conditions/context/context.d.ts +4 -0
- package/dist/cjs/conditions/context/context.js +28 -3
- package/dist/cjs/conditions/context/context.js.map +1 -1
- package/dist/cjs/conditions/schemas/address-allowlist.d.ts +16 -0
- package/dist/cjs/conditions/schemas/address-allowlist.js +20 -0
- package/dist/cjs/conditions/schemas/address-allowlist.js.map +1 -0
- package/dist/cjs/conditions/schemas/common.d.ts +1 -0
- package/dist/cjs/conditions/schemas/common.js +16 -3
- package/dist/cjs/conditions/schemas/common.js.map +1 -1
- package/dist/cjs/conditions/schemas/contract.d.ts +21 -18
- package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.d.ts +2 -0
- package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.js +3 -0
- package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.js.map +1 -1
- package/dist/cjs/conditions/schemas/json-api.d.ts +47 -14
- package/dist/cjs/conditions/schemas/json-api.js +16 -2
- package/dist/cjs/conditions/schemas/json-api.js.map +1 -1
- package/dist/cjs/conditions/schemas/json-rpc.d.ts +48 -13
- package/dist/cjs/conditions/schemas/json-rpc.js +16 -2
- package/dist/cjs/conditions/schemas/json-rpc.js.map +1 -1
- package/dist/cjs/conditions/schemas/jwt.d.ts +2 -4
- package/dist/cjs/conditions/schemas/return-value-test.d.ts +28 -12
- package/dist/cjs/conditions/schemas/return-value-test.js +19 -5
- package/dist/cjs/conditions/schemas/return-value-test.js.map +1 -1
- package/dist/cjs/conditions/schemas/rpc.d.ts +18 -12
- package/dist/cjs/conditions/schemas/signing.d.ts +12 -0
- package/dist/cjs/conditions/schemas/signing.js +204 -0
- package/dist/cjs/conditions/schemas/signing.js.map +1 -0
- package/dist/cjs/conditions/schemas/time.d.ts +16 -8
- package/dist/cjs/conditions/schemas/utils.js +6 -1
- package/dist/cjs/conditions/schemas/utils.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/sign.d.ts +24 -0
- package/dist/cjs/sign.js +88 -0
- package/dist/cjs/sign.js.map +1 -0
- package/dist/cjs/types.d.ts +1 -0
- package/dist/es/conditions/base/address-allowlist.d.ts +10 -0
- package/dist/es/conditions/base/address-allowlist.js +15 -0
- package/dist/es/conditions/base/address-allowlist.js.map +1 -0
- package/dist/es/conditions/base/index.d.ts +2 -0
- package/dist/es/conditions/base/index.js +2 -0
- package/dist/es/conditions/base/index.js.map +1 -1
- package/dist/es/conditions/base/signing.d.ts +10 -0
- package/dist/es/conditions/base/signing.js +20 -0
- package/dist/es/conditions/base/signing.js.map +1 -0
- package/dist/es/conditions/condition-factory.js +8 -0
- package/dist/es/conditions/condition-factory.js.map +1 -1
- package/dist/es/conditions/context/context.d.ts +4 -0
- package/dist/es/conditions/context/context.js +27 -2
- package/dist/es/conditions/context/context.js.map +1 -1
- package/dist/es/conditions/schemas/address-allowlist.d.ts +16 -0
- package/dist/es/conditions/schemas/address-allowlist.js +17 -0
- package/dist/es/conditions/schemas/address-allowlist.js.map +1 -0
- package/dist/es/conditions/schemas/common.d.ts +1 -0
- package/dist/es/conditions/schemas/common.js +15 -2
- package/dist/es/conditions/schemas/common.js.map +1 -1
- package/dist/es/conditions/schemas/contract.d.ts +21 -18
- package/dist/es/conditions/schemas/export-for-zod-doc-gen.d.ts +2 -0
- package/dist/es/conditions/schemas/export-for-zod-doc-gen.js +3 -0
- package/dist/es/conditions/schemas/export-for-zod-doc-gen.js.map +1 -1
- package/dist/es/conditions/schemas/json-api.d.ts +47 -14
- package/dist/es/conditions/schemas/json-api.js +17 -3
- package/dist/es/conditions/schemas/json-api.js.map +1 -1
- package/dist/es/conditions/schemas/json-rpc.d.ts +48 -13
- package/dist/es/conditions/schemas/json-rpc.js +17 -3
- package/dist/es/conditions/schemas/json-rpc.js.map +1 -1
- package/dist/es/conditions/schemas/jwt.d.ts +2 -4
- package/dist/es/conditions/schemas/return-value-test.d.ts +28 -12
- package/dist/es/conditions/schemas/return-value-test.js +19 -5
- package/dist/es/conditions/schemas/return-value-test.js.map +1 -1
- package/dist/es/conditions/schemas/rpc.d.ts +18 -12
- package/dist/es/conditions/schemas/signing.d.ts +12 -0
- package/dist/es/conditions/schemas/signing.js +201 -0
- package/dist/es/conditions/schemas/signing.js.map +1 -0
- package/dist/es/conditions/schemas/time.d.ts +16 -8
- package/dist/es/conditions/schemas/utils.js +6 -1
- package/dist/es/conditions/schemas/utils.js.map +1 -1
- package/dist/es/index.d.ts +1 -0
- package/dist/es/index.js +1 -0
- package/dist/es/index.js.map +1 -1
- package/dist/es/sign.d.ts +24 -0
- package/dist/es/sign.js +85 -0
- package/dist/es/sign.js.map +1 -0
- package/dist/es/types.d.ts +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.es.tsbuildinfo +1 -1
- package/package.json +5 -4
|
@@ -6,12 +6,26 @@ const common_1 = require("./common");
|
|
|
6
6
|
const context_1 = require("./context");
|
|
7
7
|
const return_value_test_1 = require("./return-value-test");
|
|
8
8
|
exports.JsonApiConditionType = 'json-api';
|
|
9
|
-
exports.jsonApiConditionSchema = common_1.baseConditionSchema
|
|
10
|
-
|
|
9
|
+
exports.jsonApiConditionSchema = common_1.baseConditionSchema
|
|
10
|
+
.extend({
|
|
11
|
+
conditionType: zod_1.z
|
|
12
|
+
.literal(exports.JsonApiConditionType)
|
|
13
|
+
.default(exports.JsonApiConditionType),
|
|
11
14
|
endpoint: common_1.httpsURLSchema,
|
|
12
15
|
parameters: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
13
16
|
query: common_1.jsonPathSchema.optional(),
|
|
14
17
|
authorizationToken: context_1.contextParamSchema.optional(),
|
|
18
|
+
authorizationType: common_1.jsonAuthorizationTypeSchema.optional(),
|
|
15
19
|
returnValueTest: return_value_test_1.returnValueTestSchema, // Update to allow multiple return values after expanding supported methods
|
|
20
|
+
})
|
|
21
|
+
.refine((data) => {
|
|
22
|
+
// Ensure that if authorizationType is provided, then authorizationToken is set
|
|
23
|
+
if (data.authorizationType && !data.authorizationToken) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}, {
|
|
28
|
+
message: 'authorizationToken must be provided if authorizationType is set',
|
|
29
|
+
path: ['authorizationType'],
|
|
16
30
|
});
|
|
17
31
|
//# sourceMappingURL=json-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-api.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/json-api.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,
|
|
1
|
+
{"version":3,"file":"json-api.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/json-api.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,qCAKkB;AAClB,uCAA+C;AAC/C,2DAA4D;AAE/C,QAAA,oBAAoB,GAAG,UAAU,CAAC;AAElC,QAAA,sBAAsB,GAAG,4BAAmB;KACtD,MAAM,CAAC;IACN,aAAa,EAAE,OAAC;SACb,OAAO,CAAC,4BAAoB,CAAC;SAC7B,OAAO,CAAC,4BAAoB,CAAC;IAChC,QAAQ,EAAE,uBAAc;IACxB,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,KAAK,EAAE,uBAAc,CAAC,QAAQ,EAAE;IAChC,kBAAkB,EAAE,4BAAkB,CAAC,QAAQ,EAAE;IACjD,iBAAiB,EAAE,oCAA2B,CAAC,QAAQ,EAAE;IACzD,eAAe,EAAE,yCAAqB,EAAE,2EAA2E;CACpH,CAAC;KACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,+EAA+E;IAC/E,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,OAAO,EACL,iEAAiE;IACnE,IAAI,EAAE,CAAC,mBAAmB,CAAC;CAC5B,CACF,CAAC"}
|
|
@@ -1,51 +1,86 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const JsonRpcConditionType = "json-rpc";
|
|
3
|
-
export declare const jsonRpcConditionSchema: z.
|
|
4
|
-
conditionType: z.ZodString;
|
|
5
|
-
}, {
|
|
3
|
+
export declare const jsonRpcConditionSchema: z.ZodEffects<z.ZodObject<{} & {
|
|
6
4
|
conditionType: z.ZodDefault<z.ZodLiteral<"json-rpc">>;
|
|
7
5
|
endpoint: z.ZodEffects<z.ZodString, string, string>;
|
|
8
6
|
method: z.ZodString;
|
|
9
7
|
params: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
|
|
10
8
|
query: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
11
9
|
authorizationToken: z.ZodOptional<z.ZodString>;
|
|
12
|
-
|
|
10
|
+
authorizationType: z.ZodOptional<z.ZodEnum<["Bearer", "Basic", "X-API-Key"]>>;
|
|
11
|
+
returnValueTest: z.ZodEffects<z.ZodObject<{
|
|
13
12
|
index: z.ZodOptional<z.ZodNumber>;
|
|
14
|
-
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
15
|
-
}
|
|
13
|
+
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!=", "in", "!in"]>;
|
|
14
|
+
} & {
|
|
16
15
|
value: z.ZodType<any, z.ZodTypeDef, any>;
|
|
17
|
-
}
|
|
18
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
18
|
+
value?: any;
|
|
19
|
+
index?: number | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
22
|
+
value?: any;
|
|
23
|
+
index?: number | undefined;
|
|
24
|
+
}>, {
|
|
25
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
19
26
|
value?: any;
|
|
20
27
|
index?: number | undefined;
|
|
21
28
|
}, {
|
|
22
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
29
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
23
30
|
value?: any;
|
|
24
31
|
index?: number | undefined;
|
|
25
32
|
}>;
|
|
26
|
-
}
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
34
|
conditionType: "json-rpc";
|
|
35
|
+
endpoint: string;
|
|
28
36
|
method: string;
|
|
29
37
|
returnValueTest: {
|
|
30
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
38
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
31
39
|
value?: any;
|
|
32
40
|
index?: number | undefined;
|
|
33
41
|
};
|
|
34
|
-
endpoint: string;
|
|
35
42
|
params?: unknown[] | Record<string, unknown> | undefined;
|
|
36
43
|
query?: string | undefined;
|
|
37
44
|
authorizationToken?: string | undefined;
|
|
45
|
+
authorizationType?: "Bearer" | "Basic" | "X-API-Key" | undefined;
|
|
38
46
|
}, {
|
|
47
|
+
endpoint: string;
|
|
48
|
+
method: string;
|
|
49
|
+
returnValueTest: {
|
|
50
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
51
|
+
value?: any;
|
|
52
|
+
index?: number | undefined;
|
|
53
|
+
};
|
|
54
|
+
params?: unknown[] | Record<string, unknown> | undefined;
|
|
55
|
+
conditionType?: "json-rpc" | undefined;
|
|
56
|
+
query?: string | undefined;
|
|
57
|
+
authorizationToken?: string | undefined;
|
|
58
|
+
authorizationType?: "Bearer" | "Basic" | "X-API-Key" | undefined;
|
|
59
|
+
}>, {
|
|
60
|
+
conditionType: "json-rpc";
|
|
61
|
+
endpoint: string;
|
|
39
62
|
method: string;
|
|
40
63
|
returnValueTest: {
|
|
41
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
64
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
42
65
|
value?: any;
|
|
43
66
|
index?: number | undefined;
|
|
44
67
|
};
|
|
68
|
+
params?: unknown[] | Record<string, unknown> | undefined;
|
|
69
|
+
query?: string | undefined;
|
|
70
|
+
authorizationToken?: string | undefined;
|
|
71
|
+
authorizationType?: "Bearer" | "Basic" | "X-API-Key" | undefined;
|
|
72
|
+
}, {
|
|
45
73
|
endpoint: string;
|
|
74
|
+
method: string;
|
|
75
|
+
returnValueTest: {
|
|
76
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
77
|
+
value?: any;
|
|
78
|
+
index?: number | undefined;
|
|
79
|
+
};
|
|
46
80
|
params?: unknown[] | Record<string, unknown> | undefined;
|
|
47
81
|
conditionType?: "json-rpc" | undefined;
|
|
48
82
|
query?: string | undefined;
|
|
49
83
|
authorizationToken?: string | undefined;
|
|
84
|
+
authorizationType?: "Bearer" | "Basic" | "X-API-Key" | undefined;
|
|
50
85
|
}>;
|
|
51
86
|
export type JsonRpcConditionProps = z.infer<typeof jsonRpcConditionSchema>;
|
|
@@ -6,8 +6,11 @@ const common_1 = require("./common");
|
|
|
6
6
|
const context_1 = require("./context");
|
|
7
7
|
const return_value_test_1 = require("./return-value-test");
|
|
8
8
|
exports.JsonRpcConditionType = 'json-rpc';
|
|
9
|
-
exports.jsonRpcConditionSchema = common_1.baseConditionSchema
|
|
10
|
-
|
|
9
|
+
exports.jsonRpcConditionSchema = common_1.baseConditionSchema
|
|
10
|
+
.extend({
|
|
11
|
+
conditionType: zod_1.z
|
|
12
|
+
.literal(exports.JsonRpcConditionType)
|
|
13
|
+
.default(exports.JsonRpcConditionType),
|
|
11
14
|
endpoint: common_1.httpsURLSchema,
|
|
12
15
|
method: zod_1.z.string(),
|
|
13
16
|
// list or dictionary
|
|
@@ -16,6 +19,17 @@ exports.jsonRpcConditionSchema = common_1.baseConditionSchema.extend({
|
|
|
16
19
|
.optional(),
|
|
17
20
|
query: common_1.jsonPathSchema.optional(),
|
|
18
21
|
authorizationToken: context_1.contextParamSchema.optional(),
|
|
22
|
+
authorizationType: common_1.jsonAuthorizationTypeSchema.optional(),
|
|
19
23
|
returnValueTest: return_value_test_1.returnValueTestSchema,
|
|
24
|
+
})
|
|
25
|
+
.refine((data) => {
|
|
26
|
+
// Ensure that if authorizationType is provided, then authorizationToken is set
|
|
27
|
+
if (data.authorizationType && !data.authorizationToken) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}, {
|
|
32
|
+
message: 'authorizationToken must be provided if authorizationType is set',
|
|
33
|
+
path: ['authorizationType'],
|
|
20
34
|
});
|
|
21
35
|
//# sourceMappingURL=json-rpc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/json-rpc.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,
|
|
1
|
+
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/json-rpc.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,qCAKkB;AAClB,uCAA+C;AAC/C,2DAA4D;AAE/C,QAAA,oBAAoB,GAAG,UAAU,CAAC;AAElC,QAAA,sBAAsB,GAAG,4BAAmB;KACtD,MAAM,CAAC;IACN,aAAa,EAAE,OAAC;SACb,OAAO,CAAC,4BAAoB,CAAC;SAC7B,OAAO,CAAC,4BAAoB,CAAC;IAChC,QAAQ,EAAE,uBAAc;IACxB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,qBAAqB;IACrB,MAAM,EAAE,OAAC;SACN,KAAK,CAAC,CAAC,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SAChE,QAAQ,EAAE;IACb,KAAK,EAAE,uBAAc,CAAC,QAAQ,EAAE;IAChC,kBAAkB,EAAE,4BAAkB,CAAC,QAAQ,EAAE;IACjD,iBAAiB,EAAE,oCAA2B,CAAC,QAAQ,EAAE;IACzD,eAAe,EAAE,yCAAqB;CACvC,CAAC;KACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,+EAA+E;IAC/E,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,OAAO,EACL,iEAAiE;IACnE,IAAI,EAAE,CAAC,mBAAmB,CAAC;CAC5B,CACF,CAAC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const JWT_PARAM_DEFAULT = ":jwtToken";
|
|
3
3
|
export declare const JWTConditionType = "jwt";
|
|
4
|
-
export declare const jwtConditionSchema: z.ZodObject<
|
|
5
|
-
conditionType: z.ZodString;
|
|
6
|
-
}, {
|
|
4
|
+
export declare const jwtConditionSchema: z.ZodObject<{} & {
|
|
7
5
|
conditionType: z.ZodDefault<z.ZodLiteral<"jwt">>;
|
|
8
6
|
publicKey: z.ZodString;
|
|
9
7
|
expectedIssuer: z.ZodOptional<z.ZodString>;
|
|
10
8
|
jwtToken: z.ZodDefault<z.ZodString>;
|
|
11
|
-
}
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
10
|
conditionType: "jwt";
|
|
13
11
|
publicKey: string;
|
|
14
12
|
jwtToken: string;
|
|
@@ -1,29 +1,45 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const returnValueTestSchema: z.
|
|
2
|
+
export declare const returnValueTestSchema: z.ZodEffects<z.ZodObject<{
|
|
3
3
|
index: z.ZodOptional<z.ZodNumber>;
|
|
4
|
-
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
5
|
-
}
|
|
4
|
+
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!=", "in", "!in"]>;
|
|
5
|
+
} & {
|
|
6
6
|
value: z.ZodType<any, z.ZodTypeDef, any>;
|
|
7
|
-
}
|
|
8
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
9
|
+
value?: any;
|
|
10
|
+
index?: number | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
13
|
+
value?: any;
|
|
14
|
+
index?: number | undefined;
|
|
15
|
+
}>, {
|
|
16
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
9
17
|
value?: any;
|
|
10
18
|
index?: number | undefined;
|
|
11
19
|
}, {
|
|
12
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
20
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
13
21
|
value?: any;
|
|
14
22
|
index?: number | undefined;
|
|
15
23
|
}>;
|
|
16
|
-
export declare const blockchainReturnValueTestSchema: z.
|
|
24
|
+
export declare const blockchainReturnValueTestSchema: z.ZodEffects<z.ZodObject<{
|
|
17
25
|
index: z.ZodOptional<z.ZodNumber>;
|
|
18
|
-
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
19
|
-
}
|
|
26
|
+
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!=", "in", "!in"]>;
|
|
27
|
+
} & {
|
|
20
28
|
value: z.ZodType<any, z.ZodTypeDef, any>;
|
|
21
|
-
}
|
|
22
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
31
|
+
value?: any;
|
|
32
|
+
index?: number | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
35
|
+
value?: any;
|
|
36
|
+
index?: number | undefined;
|
|
37
|
+
}>, {
|
|
38
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
23
39
|
value?: any;
|
|
24
40
|
index?: number | undefined;
|
|
25
41
|
}, {
|
|
26
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
42
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
27
43
|
value?: any;
|
|
28
44
|
index?: number | undefined;
|
|
29
45
|
}>;
|
|
@@ -5,12 +5,26 @@ const zod_1 = require("zod");
|
|
|
5
5
|
const context_1 = require("./context");
|
|
6
6
|
const returnValueTestBaseSchema = zod_1.z.object({
|
|
7
7
|
index: zod_1.z.number().int().nonnegative().optional(),
|
|
8
|
-
comparator: zod_1.z.enum(['==', '>', '<', '>=', '<=', '!=']),
|
|
8
|
+
comparator: zod_1.z.enum(['==', '>', '<', '>=', '<=', '!=', 'in', '!in']),
|
|
9
9
|
});
|
|
10
|
-
|
|
10
|
+
const requireNonEmptyArrayIfComparatorIsIn = (data) => {
|
|
11
|
+
if (data.comparator === 'in' || data.comparator === '!in') {
|
|
12
|
+
return Array.isArray(data.value) && data.value.length > 0;
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
};
|
|
16
|
+
const inComparatorErrorConfig = {
|
|
17
|
+
message: `"value" must be a non-empty array when comparator is "in"/"!in"`,
|
|
18
|
+
path: ['value'],
|
|
19
|
+
};
|
|
20
|
+
exports.returnValueTestSchema = returnValueTestBaseSchema
|
|
21
|
+
.extend({
|
|
11
22
|
value: context_1.paramOrContextParamSchema,
|
|
12
|
-
})
|
|
13
|
-
|
|
23
|
+
})
|
|
24
|
+
.refine(requireNonEmptyArrayIfComparatorIsIn, inComparatorErrorConfig);
|
|
25
|
+
exports.blockchainReturnValueTestSchema = returnValueTestBaseSchema
|
|
26
|
+
.extend({
|
|
14
27
|
value: context_1.blockchainParamOrContextParamSchema,
|
|
15
|
-
})
|
|
28
|
+
})
|
|
29
|
+
.refine(requireNonEmptyArrayIfComparatorIsIn, inComparatorErrorConfig);
|
|
16
30
|
//# sourceMappingURL=return-value-test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"return-value-test.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/return-value-test.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,uCAGmB;AAEnB,MAAM,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAChD,UAAU,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"return-value-test.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/return-value-test.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,uCAGmB;AAEnB,MAAM,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAChD,UAAU,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;CACpE,CAAC,CAAC;AAEH,MAAM,oCAAoC,GAAG,CAAC,IAI7C,EAAW,EAAE;IACZ,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC9B,OAAO,EAAE,iEAAiE;IAC1E,IAAI,EAAE,CAAC,OAAO,CAAC;CAChB,CAAC;AAEW,QAAA,qBAAqB,GAAG,yBAAyB;KAC3D,MAAM,CAAC;IACN,KAAK,EAAE,mCAAyB;CACjC,CAAC;KACD,MAAM,CAAC,oCAAoC,EAAE,uBAAuB,CAAC,CAAC;AAE5D,QAAA,+BAA+B,GAAG,yBAAyB;KACrE,MAAM,CAAC;IACN,KAAK,EAAE,6CAAmC;CAC3C,CAAC;KACD,MAAM,CAAC,oCAAoC,EAAE,uBAAuB,CAAC,CAAC"}
|
|
@@ -1,33 +1,39 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const RpcConditionType = "rpc";
|
|
3
|
-
export declare const rpcConditionSchema: z.ZodObject<
|
|
4
|
-
conditionType: z.ZodString;
|
|
5
|
-
}, {
|
|
3
|
+
export declare const rpcConditionSchema: z.ZodObject<{} & {
|
|
6
4
|
conditionType: z.ZodDefault<z.ZodLiteral<"rpc">>;
|
|
7
5
|
chain: z.ZodNumber;
|
|
8
6
|
method: z.ZodEnum<["eth_getBalance"]>;
|
|
9
7
|
parameters: z.ZodUnion<[z.ZodTuple<[z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodLiteral<":userAddress">, z.ZodString]>, z.ZodUnion<[z.ZodUnion<[z.ZodNumber, z.ZodString, z.ZodEnum<["earliest", "finalized", "safe", "latest", "pending"]>]>, z.ZodString]>], null>, z.ZodTuple<[z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodLiteral<":userAddress">, z.ZodString]>], null>]>;
|
|
10
|
-
returnValueTest: z.
|
|
8
|
+
returnValueTest: z.ZodEffects<z.ZodObject<{
|
|
11
9
|
index: z.ZodOptional<z.ZodNumber>;
|
|
12
|
-
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
13
|
-
}
|
|
10
|
+
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!=", "in", "!in"]>;
|
|
11
|
+
} & {
|
|
14
12
|
value: z.ZodType<any, z.ZodTypeDef, any>;
|
|
15
|
-
}
|
|
16
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
15
|
+
value?: any;
|
|
16
|
+
index?: number | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
19
|
+
value?: any;
|
|
20
|
+
index?: number | undefined;
|
|
21
|
+
}>, {
|
|
22
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
17
23
|
value?: any;
|
|
18
24
|
index?: number | undefined;
|
|
19
25
|
}, {
|
|
20
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
26
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
21
27
|
value?: any;
|
|
22
28
|
index?: number | undefined;
|
|
23
29
|
}>;
|
|
24
|
-
}
|
|
30
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
31
|
conditionType: "rpc";
|
|
26
32
|
chain: number;
|
|
27
33
|
method: "eth_getBalance";
|
|
28
34
|
parameters: [string, string | number] | [string];
|
|
29
35
|
returnValueTest: {
|
|
30
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
36
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
31
37
|
value?: any;
|
|
32
38
|
index?: number | undefined;
|
|
33
39
|
};
|
|
@@ -36,7 +42,7 @@ export declare const rpcConditionSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
36
42
|
method: "eth_getBalance";
|
|
37
43
|
parameters: [string, string | number] | [string];
|
|
38
44
|
returnValueTest: {
|
|
39
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
45
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
40
46
|
value?: any;
|
|
41
47
|
index?: number | undefined;
|
|
42
48
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const SIGNING_CONDITION_OBJECT_CONTEXT_VAR = ":signingConditionObject";
|
|
3
|
+
export declare const SigningObjectAttributeConditionType = "signing-attribute";
|
|
4
|
+
export declare const signingObjectAttributeConditionSchema: z.ZodSchema;
|
|
5
|
+
export type SigningObjectAttributeConditionProps = z.infer<typeof signingObjectAttributeConditionSchema>;
|
|
6
|
+
export declare const abiParameterValidationSchema: z.ZodSchema;
|
|
7
|
+
export type AbiParameterValidationProps = z.infer<typeof abiParameterValidationSchema>;
|
|
8
|
+
export declare const abiCallValidationSchema: z.ZodSchema;
|
|
9
|
+
export type AbiCallValidationProps = z.infer<typeof abiCallValidationSchema>;
|
|
10
|
+
export declare const SigningObjectAbiAttributeConditionType = "signing-abi-attribute";
|
|
11
|
+
export declare const signingObjectAbiAttributeConditionSchema: z.ZodSchema;
|
|
12
|
+
export type SigningObjectAbiAttributeConditionProps = z.infer<typeof signingObjectAbiAttributeConditionSchema>;
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.signingObjectAbiAttributeConditionSchema = exports.SigningObjectAbiAttributeConditionType = exports.abiCallValidationSchema = exports.abiParameterValidationSchema = exports.signingObjectAttributeConditionSchema = exports.SigningObjectAttributeConditionType = exports.SIGNING_CONDITION_OBJECT_CONTEXT_VAR = void 0;
|
|
4
|
+
const utils_1 = require("ethers/lib/utils");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const common_1 = require("./common");
|
|
7
|
+
const return_value_test_1 = require("./return-value-test");
|
|
8
|
+
exports.SIGNING_CONDITION_OBJECT_CONTEXT_VAR = ':signingConditionObject';
|
|
9
|
+
const signingConditionSchema = common_1.baseConditionSchema.extend({
|
|
10
|
+
signingObjectContextVar: zod_1.z
|
|
11
|
+
.literal(exports.SIGNING_CONDITION_OBJECT_CONTEXT_VAR)
|
|
12
|
+
.default(exports.SIGNING_CONDITION_OBJECT_CONTEXT_VAR)
|
|
13
|
+
.describe('The context variable that will be replaced with the signing object at signing'),
|
|
14
|
+
});
|
|
15
|
+
const baseSigningObjectAttributeConditionSchema = signingConditionSchema.extend({
|
|
16
|
+
attributeName: zod_1.z
|
|
17
|
+
.string()
|
|
18
|
+
.min(1)
|
|
19
|
+
.describe('The name of the attribute to check'),
|
|
20
|
+
});
|
|
21
|
+
exports.SigningObjectAttributeConditionType = 'signing-attribute';
|
|
22
|
+
exports.signingObjectAttributeConditionSchema = baseSigningObjectAttributeConditionSchema.extend({
|
|
23
|
+
conditionType: zod_1.z
|
|
24
|
+
.literal(exports.SigningObjectAttributeConditionType)
|
|
25
|
+
.default(exports.SigningObjectAttributeConditionType),
|
|
26
|
+
returnValueTest: return_value_test_1.blockchainReturnValueTestSchema,
|
|
27
|
+
});
|
|
28
|
+
exports.abiParameterValidationSchema = zod_1.z
|
|
29
|
+
.object({
|
|
30
|
+
parameterIndex: zod_1.z
|
|
31
|
+
.number()
|
|
32
|
+
.int()
|
|
33
|
+
.nonnegative()
|
|
34
|
+
.describe('Index of parameter to check within abi calldata.'),
|
|
35
|
+
indexWithinTuple: zod_1.z
|
|
36
|
+
.number()
|
|
37
|
+
.int()
|
|
38
|
+
.nonnegative()
|
|
39
|
+
.optional()
|
|
40
|
+
.describe('Index of value within tuple value at parameter index to check'),
|
|
41
|
+
returnValueTest: return_value_test_1.blockchainReturnValueTestSchema
|
|
42
|
+
.optional()
|
|
43
|
+
.describe('Comparison check for value within calldata'),
|
|
44
|
+
nestedAbiValidation: zod_1.z
|
|
45
|
+
.lazy(() => exports.abiCallValidationSchema)
|
|
46
|
+
.optional()
|
|
47
|
+
.describe('Additional checks for nested abi calldata'),
|
|
48
|
+
})
|
|
49
|
+
.refine(
|
|
50
|
+
// An XOR check to see if either 'returnValueTest' or 'nestedAbiValidation' is set
|
|
51
|
+
(parameterValidation) => Boolean(parameterValidation.returnValueTest) !==
|
|
52
|
+
Boolean(parameterValidation.nestedAbiValidation), {
|
|
53
|
+
message: "At most one of the fields 'returnValueTest' and 'nestedAbiValidation' must be defined",
|
|
54
|
+
path: ['returnValueTest'],
|
|
55
|
+
});
|
|
56
|
+
// TODO: is there something already built out there to validate Solidity types?
|
|
57
|
+
function generateSolidityBaseTypeRegExp() {
|
|
58
|
+
// Generate a regex pattern for Solidity base types
|
|
59
|
+
// Generate int/uint sizes (8, 16, ..., 256)
|
|
60
|
+
const intSizes = Array.from({ length: 32 }, (_, i) => (i + 1) * 8); // [8, 16, ..., 256]
|
|
61
|
+
const intSizePattern = intSizes.join('|');
|
|
62
|
+
// Generate bytes sizes (1, 2, ..., 32)
|
|
63
|
+
const bytesSizes = Array.from({ length: 32 }, (_, i) => i + 1); // [1, 2, ..., 32]
|
|
64
|
+
const bytesSizePattern = bytesSizes.join('|');
|
|
65
|
+
// Build the regex string
|
|
66
|
+
const baseTypes = [
|
|
67
|
+
`u?int(${intSizePattern})?`, // uint8, uint16, ..., uint256, int8, int16, ..., int256
|
|
68
|
+
`bytes(${bytesSizePattern})?`, // bytes1, bytes2, ..., bytes32
|
|
69
|
+
'string',
|
|
70
|
+
'address',
|
|
71
|
+
'bool',
|
|
72
|
+
].join('|');
|
|
73
|
+
return new RegExp(`^(${baseTypes})$`);
|
|
74
|
+
}
|
|
75
|
+
// YIKES!
|
|
76
|
+
const solidityBaseTypePattern = generateSolidityBaseTypeRegExp();
|
|
77
|
+
const isValidSolidityType = (param) => {
|
|
78
|
+
// Recursive check for valid Solidity types
|
|
79
|
+
if (!param.baseType || !param.baseType.trim()) {
|
|
80
|
+
return false; // empty type is not valid
|
|
81
|
+
}
|
|
82
|
+
// Check for arrays and tuples
|
|
83
|
+
if (param.baseType === 'tuple') {
|
|
84
|
+
if (!param.components || param.components.length === 0) {
|
|
85
|
+
return false; // tuples must have components defined
|
|
86
|
+
}
|
|
87
|
+
return param.components.every(isValidSolidityType);
|
|
88
|
+
}
|
|
89
|
+
else if (param.baseType === 'array') {
|
|
90
|
+
if (!param.arrayChildren) {
|
|
91
|
+
return false; // arrays must have children type defined
|
|
92
|
+
}
|
|
93
|
+
return isValidSolidityType(param.arrayChildren);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
return solidityBaseTypePattern.test(param.baseType);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
// TODO; find a better way to validate the param type - incomplete best effort for now
|
|
100
|
+
const isValidHumanAbiCallSignature = (signature) => {
|
|
101
|
+
try {
|
|
102
|
+
// TODO: verify this works properly
|
|
103
|
+
const fragment = utils_1.FunctionFragment.from(signature);
|
|
104
|
+
for (const parameter of fragment.inputs) {
|
|
105
|
+
if (!isValidSolidityType(parameter)) {
|
|
106
|
+
return false; // invalid Solidity type
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// ensure the same sighash format was provided
|
|
110
|
+
return fragment.format() === signature;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
const humanAbiCallSignatureSchema = zod_1.z
|
|
117
|
+
.string()
|
|
118
|
+
.refine(isValidHumanAbiCallSignature, {
|
|
119
|
+
message: 'Invalid human readable ABI signature provided',
|
|
120
|
+
})
|
|
121
|
+
.describe('A human readable ABI signature, e.g. "transfer(address,uint256)"');
|
|
122
|
+
/**
|
|
123
|
+
* Validates the allowed ABI calls against the provided signature and validations.
|
|
124
|
+
* This function is used in the superRefine method of the abiCallValidationSchema.
|
|
125
|
+
*
|
|
126
|
+
* @param ctx - The Zod refinement context.
|
|
127
|
+
* @param signature - The ABI signature to validate against.
|
|
128
|
+
* @param validations - The array of validations for the ABI parameters.
|
|
129
|
+
*/
|
|
130
|
+
function validateAllowedAbiCall(ctx, signature, validations) {
|
|
131
|
+
try {
|
|
132
|
+
const fragment = utils_1.FunctionFragment.from(signature);
|
|
133
|
+
for (const [index, validation] of validations.entries()) {
|
|
134
|
+
if (validation.parameterIndex >= fragment.inputs.length) {
|
|
135
|
+
// invalid parameter index
|
|
136
|
+
ctx.addIssue({
|
|
137
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
138
|
+
message: `Parameter index, "${validation.parameterIndex}", is out of range`,
|
|
139
|
+
path: ['allowedAbiCalls', signature, index, 'parameterIndex'],
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
if (validation.indexWithinTuple !== undefined) {
|
|
143
|
+
const paramType = fragment.inputs[validation.parameterIndex];
|
|
144
|
+
if (paramType.baseType !== 'tuple') {
|
|
145
|
+
// type at parameter index is not a tuple
|
|
146
|
+
ctx.addIssue({
|
|
147
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
148
|
+
message: `Type at parameter index, "${validation.parameterIndex}", is not a tuple`,
|
|
149
|
+
path: ['allowedAbiCalls', signature, index, 'parameterIndex'],
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
else if (validation.indexWithinTuple >= paramType.components.length) {
|
|
153
|
+
// invalid index within tuple
|
|
154
|
+
ctx.addIssue({
|
|
155
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
156
|
+
message: `Index within tuple, "${validation.indexWithinTuple}", is out of range`,
|
|
157
|
+
path: ['allowedAbiCalls', signature, index, 'indexWithinTuple'],
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (validation.nestedAbiValidation) {
|
|
162
|
+
// if there is nested ABI validation, the type must be bytes
|
|
163
|
+
let paramType = fragment.inputs[validation.parameterIndex];
|
|
164
|
+
if (validation.indexWithinTuple !== undefined) {
|
|
165
|
+
// if there is an index within tuple, get the type of the component at that index
|
|
166
|
+
paramType = paramType.components[validation.indexWithinTuple];
|
|
167
|
+
}
|
|
168
|
+
if (paramType.baseType !== 'bytes') {
|
|
169
|
+
ctx.addIssue({
|
|
170
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
171
|
+
message: `Invalid type for nested ABI validation, "${paramType.baseType}"; expected bytes`,
|
|
172
|
+
path: ['allowedAbiCalls', signature, index],
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
// even though abi signatures are already validated by nested schema - zod uses “greedy” (continuable) validation so all validations are run
|
|
180
|
+
// ignore invalid ABI signature
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
exports.abiCallValidationSchema = zod_1.z
|
|
184
|
+
.object({
|
|
185
|
+
allowedAbiCalls: zod_1.z.record(humanAbiCallSignatureSchema, zod_1.z.array(exports.abiParameterValidationSchema)),
|
|
186
|
+
})
|
|
187
|
+
.refine((abiCallValidation) => Object.keys(abiCallValidation.allowedAbiCalls).length > 0, {
|
|
188
|
+
message: 'At least one allowed ABI call must be defined',
|
|
189
|
+
path: ['allowedAbiCalls'],
|
|
190
|
+
})
|
|
191
|
+
.superRefine((data, ctx) => {
|
|
192
|
+
for (const [signature, validations] of Object.entries(data.allowedAbiCalls)) {
|
|
193
|
+
validateAllowedAbiCall(ctx, signature, validations);
|
|
194
|
+
}
|
|
195
|
+
})
|
|
196
|
+
.describe('A map of allowed ABI calls with their respective parameter validations.');
|
|
197
|
+
exports.SigningObjectAbiAttributeConditionType = 'signing-abi-attribute';
|
|
198
|
+
exports.signingObjectAbiAttributeConditionSchema = baseSigningObjectAttributeConditionSchema.extend({
|
|
199
|
+
conditionType: zod_1.z
|
|
200
|
+
.literal(exports.SigningObjectAbiAttributeConditionType)
|
|
201
|
+
.default(exports.SigningObjectAbiAttributeConditionType),
|
|
202
|
+
abiValidation: exports.abiCallValidationSchema,
|
|
203
|
+
});
|
|
204
|
+
//# sourceMappingURL=signing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/signing.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAC/D,6BAAwB;AAExB,qCAA+C;AAC/C,2DAAsE;AAEzD,QAAA,oCAAoC,GAAG,yBAAyB,CAAC;AAE9E,MAAM,sBAAsB,GAAG,4BAAmB,CAAC,MAAM,CAAC;IACxD,uBAAuB,EAAE,OAAC;SACvB,OAAO,CAAC,4CAAoC,CAAC;SAC7C,OAAO,CAAC,4CAAoC,CAAC;SAC7C,QAAQ,CACP,+EAA+E,CAChF;CACJ,CAAC,CAAC;AAEH,MAAM,yCAAyC,GAAG,sBAAsB,CAAC,MAAM,CAC7E;IACE,aAAa,EAAE,OAAC;SACb,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,oCAAoC,CAAC;CAClD,CACF,CAAC;AAEW,QAAA,mCAAmC,GAAG,mBAAmB,CAAC;AAE1D,QAAA,qCAAqC,GAChD,yCAAyC,CAAC,MAAM,CAAC;IAC/C,aAAa,EAAE,OAAC;SACb,OAAO,CAAC,2CAAmC,CAAC;SAC5C,OAAO,CAAC,2CAAmC,CAAC;IAC/C,eAAe,EAAE,mDAA+B;CACjD,CAAC,CAAC;AAMQ,QAAA,4BAA4B,GAAgB,OAAC;KACvD,MAAM,CAAC;IACN,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,gBAAgB,EAAE,OAAC;SAChB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CACP,+DAA+D,CAChE;IACH,eAAe,EAAE,mDAA+B;SAC7C,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;IACzD,mBAAmB,EAAE,OAAC;SACnB,IAAI,CAAC,GAAG,EAAE,CAAC,+BAAuB,CAAC;SACnC,QAAQ,EAAE;SACV,QAAQ,CAAC,2CAA2C,CAAC;CACzD,CAAC;KACD,MAAM;AACL,kFAAkF;AAClF,CAAC,mBAAmB,EAAE,EAAE,CACtB,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC;IAC5C,OAAO,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,EAClD;IACE,OAAO,EACL,uFAAuF;IACzF,IAAI,EAAE,CAAC,iBAAiB,CAAC;CAC1B,CACF,CAAC;AAMJ,+EAA+E;AAE/E,SAAS,8BAA8B;IACrC,mDAAmD;IAEnD,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB;IACxF,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1C,uCAAuC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB;IAClF,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9C,yBAAyB;IACzB,MAAM,SAAS,GAAG;QAChB,SAAS,cAAc,IAAI,EAAE,wDAAwD;QACrF,SAAS,gBAAgB,IAAI,EAAE,+BAA+B;QAC9D,QAAQ;QACR,SAAS;QACT,MAAM;KACP,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,OAAO,IAAI,MAAM,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS;AACT,MAAM,uBAAuB,GAAG,8BAA8B,EAAE,CAAC;AAEjE,MAAM,mBAAmB,GAAG,CAAC,KAAgB,EAAW,EAAE;IACxD,2CAA2C;IAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC,CAAC,0BAA0B;IAC1C,CAAC;IAED,8BAA8B;IAC9B,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC,CAAC,sCAAsC;QACtD,CAAC;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,CAAC,yCAAyC;QACzD,CAAC;QACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,CAAC;AAEF,sFAAsF;AACtF,MAAM,4BAA4B,GAAG,CAAC,SAAiB,EAAW,EAAE;IAClE,IAAI,CAAC;QACH,mCAAmC;QACnC,MAAM,QAAQ,GAAG,wBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,OAAO,KAAK,CAAC,CAAC,wBAAwB;YACxC,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,MAAM,CAAC,4BAA4B,EAAE;IACpC,OAAO,EAAE,+CAA+C;CACzD,CAAC;KACD,QAAQ,CAAC,kEAAkE,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAC7B,GAAoB,EACpB,SAAiB,EACjB,WAA0C;IAE1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,wBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,UAAU,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACxD,0BAA0B;gBAC1B,GAAG,CAAC,QAAQ,CAAC;oBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,qBAAqB,UAAU,CAAC,cAAc,oBAAoB;oBAC3E,IAAI,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;YAED,IAAI,UAAU,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACnC,yCAAyC;oBACzC,GAAG,CAAC,QAAQ,CAAC;wBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,6BAA6B,UAAU,CAAC,cAAc,mBAAmB;wBAClF,IAAI,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC;qBAC9D,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,UAAU,CAAC,gBAAgB,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;oBACtE,6BAA6B;oBAC7B,GAAG,CAAC,QAAQ,CAAC;wBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,wBAAwB,UAAU,CAAC,gBAAgB,oBAAoB;wBAChF,IAAI,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACnC,4DAA4D;gBAC5D,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAC3D,IAAI,UAAU,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;oBAC9C,iFAAiF;oBACjF,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBAChE,CAAC;gBAED,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACnC,GAAG,CAAC,QAAQ,CAAC;wBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,4CAA4C,SAAS,CAAC,QAAQ,mBAAmB;wBAC1F,IAAI,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC;qBAC5C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4IAA4I;QAC5I,+BAA+B;IACjC,CAAC;AACH,CAAC;AAEY,QAAA,uBAAuB,GAAgB,OAAC;KAClD,MAAM,CAAC;IACN,eAAe,EAAE,OAAC,CAAC,MAAM,CACvB,2BAA2B,EAC3B,OAAC,CAAC,KAAK,CAAC,oCAA4B,CAAC,CACtC;CACF,CAAC;KACD,MAAM,CACL,CAAC,iBAAiB,EAAE,EAAE,CACpB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAC3D;IACE,OAAO,EAAE,+CAA+C;IACxD,IAAI,EAAE,CAAC,iBAAiB,CAAC;CAC1B,CACF;KACA,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACzB,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CACnD,IAAI,CAAC,eAAe,CACrB,EAAE,CAAC;QACF,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,CAAC;KACD,QAAQ,CACP,yEAAyE,CAC1E,CAAC;AAIS,QAAA,sCAAsC,GAAG,uBAAuB,CAAC;AAEjE,QAAA,wCAAwC,GACnD,yCAAyC,CAAC,MAAM,CAAC;IAC/C,aAAa,EAAE,OAAC;SACb,OAAO,CAAC,8CAAsC,CAAC;SAC/C,OAAO,CAAC,8CAAsC,CAAC;IAClD,aAAa,EAAE,+BAAuB;CACvC,CAAC,CAAC"}
|
|
@@ -5,17 +5,25 @@ export declare const timeConditionSchema: z.ZodObject<{
|
|
|
5
5
|
conditionType: z.ZodDefault<z.ZodLiteral<"time">>;
|
|
6
6
|
method: z.ZodDefault<z.ZodLiteral<"blocktime">>;
|
|
7
7
|
chain: z.ZodNumber;
|
|
8
|
-
returnValueTest: z.
|
|
8
|
+
returnValueTest: z.ZodEffects<z.ZodObject<{
|
|
9
9
|
index: z.ZodOptional<z.ZodNumber>;
|
|
10
|
-
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
11
|
-
}
|
|
10
|
+
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!=", "in", "!in"]>;
|
|
11
|
+
} & {
|
|
12
12
|
value: z.ZodType<any, z.ZodTypeDef, any>;
|
|
13
|
-
}
|
|
14
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
15
|
+
value?: any;
|
|
16
|
+
index?: number | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
19
|
+
value?: any;
|
|
20
|
+
index?: number | undefined;
|
|
21
|
+
}>, {
|
|
22
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
15
23
|
value?: any;
|
|
16
24
|
index?: number | undefined;
|
|
17
25
|
}, {
|
|
18
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
26
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
19
27
|
value?: any;
|
|
20
28
|
index?: number | undefined;
|
|
21
29
|
}>;
|
|
@@ -24,14 +32,14 @@ export declare const timeConditionSchema: z.ZodObject<{
|
|
|
24
32
|
chain: number;
|
|
25
33
|
method: "blocktime";
|
|
26
34
|
returnValueTest: {
|
|
27
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
35
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
28
36
|
value?: any;
|
|
29
37
|
index?: number | undefined;
|
|
30
38
|
};
|
|
31
39
|
}, {
|
|
32
40
|
chain: number;
|
|
33
41
|
returnValueTest: {
|
|
34
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
42
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
|
|
35
43
|
value?: any;
|
|
36
44
|
index?: number | undefined;
|
|
37
45
|
};
|