@nucypher/taco 0.6.0-alpha.1 → 0.6.0-alpha.2
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/README.md +2 -2
- package/dist/cjs/conditions/base/index.d.ts +1 -0
- package/dist/cjs/conditions/base/index.js +2 -1
- package/dist/cjs/conditions/base/index.js.map +1 -1
- package/dist/cjs/conditions/base/json-api.d.ts +1 -1
- package/dist/cjs/conditions/base/json-api.js +1 -2
- package/dist/cjs/conditions/base/json-api.js.map +1 -1
- package/dist/cjs/conditions/base/json-rpc.d.ts +7 -0
- package/dist/cjs/conditions/base/json-rpc.js +18 -0
- package/dist/cjs/conditions/base/json-rpc.js.map +1 -0
- package/dist/cjs/conditions/condition-factory.js +3 -0
- package/dist/cjs/conditions/condition-factory.js.map +1 -1
- package/dist/cjs/conditions/const.d.ts +0 -2
- package/dist/cjs/conditions/const.js +1 -8
- package/dist/cjs/conditions/const.js.map +1 -1
- package/dist/cjs/conditions/context/context.d.ts +1 -0
- package/dist/cjs/conditions/context/context.js +46 -51
- package/dist/cjs/conditions/context/context.js.map +1 -1
- package/dist/cjs/conditions/schemas/common.d.ts +2 -0
- package/dist/cjs/conditions/schemas/common.js +31 -1
- package/dist/cjs/conditions/schemas/common.js.map +1 -1
- package/dist/cjs/conditions/schemas/contract.d.ts +13 -13
- package/dist/cjs/conditions/schemas/json-api.d.ts +1 -2
- package/dist/cjs/conditions/schemas/json-api.js +5 -25
- package/dist/cjs/conditions/schemas/json-api.js.map +1 -1
- package/dist/cjs/conditions/schemas/json-rpc.d.ts +48 -0
- package/dist/cjs/conditions/schemas/json-rpc.js +21 -0
- package/dist/cjs/conditions/schemas/json-rpc.js.map +1 -0
- package/dist/cjs/conditions/schemas/rpc.d.ts +7 -7
- package/dist/cjs/conditions/schemas/rpc.js +2 -26
- package/dist/cjs/conditions/schemas/rpc.js.map +1 -1
- package/dist/cjs/conditions/schemas/time.d.ts +4 -4
- package/dist/cjs/conditions/schemas/utils.js +2 -0
- package/dist/cjs/conditions/schemas/utils.js.map +1 -1
- package/dist/es/conditions/base/index.d.ts +1 -0
- package/dist/es/conditions/base/index.js +1 -0
- package/dist/es/conditions/base/index.js.map +1 -1
- package/dist/es/conditions/base/json-api.d.ts +1 -1
- package/dist/es/conditions/base/json-api.js +1 -1
- package/dist/es/conditions/base/json-api.js.map +1 -1
- package/dist/es/conditions/base/json-rpc.d.ts +7 -0
- package/dist/es/conditions/base/json-rpc.js +12 -0
- package/dist/es/conditions/base/json-rpc.js.map +1 -0
- package/dist/es/conditions/condition-factory.js +3 -0
- package/dist/es/conditions/condition-factory.js.map +1 -1
- package/dist/es/conditions/const.d.ts +0 -2
- package/dist/es/conditions/const.js +0 -7
- package/dist/es/conditions/const.js.map +1 -1
- package/dist/es/conditions/context/context.d.ts +1 -0
- package/dist/es/conditions/context/context.js +47 -52
- package/dist/es/conditions/context/context.js.map +1 -1
- package/dist/es/conditions/schemas/common.d.ts +2 -0
- package/dist/es/conditions/schemas/common.js +31 -1
- package/dist/es/conditions/schemas/common.js.map +1 -1
- package/dist/es/conditions/schemas/contract.d.ts +13 -13
- package/dist/es/conditions/schemas/json-api.d.ts +1 -2
- package/dist/es/conditions/schemas/json-api.js +3 -23
- package/dist/es/conditions/schemas/json-api.js.map +1 -1
- package/dist/es/conditions/schemas/json-rpc.d.ts +48 -0
- package/dist/es/conditions/schemas/json-rpc.js +18 -0
- package/dist/es/conditions/schemas/json-rpc.js.map +1 -0
- package/dist/es/conditions/schemas/rpc.d.ts +7 -7
- package/dist/es/conditions/schemas/rpc.js +2 -3
- package/dist/es/conditions/schemas/rpc.js.map +1 -1
- package/dist/es/conditions/schemas/time.d.ts +4 -4
- package/dist/es/conditions/schemas/utils.js +2 -0
- package/dist/es/conditions/schemas/utils.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.es.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/cjs/conditions/context/providers.d.ts +0 -16
- package/dist/cjs/conditions/context/providers.js +0 -111
- package/dist/cjs/conditions/context/providers.js.map +0 -1
- package/dist/cjs/web3.d.ts +0 -33
- package/dist/cjs/web3.js +0 -3
- package/dist/cjs/web3.js.map +0 -1
- package/dist/es/conditions/context/providers.d.ts +0 -16
- package/dist/es/conditions/context/providers.js +0 -107
- package/dist/es/conditions/context/providers.js.map +0 -1
- package/dist/es/web3.d.ts +0 -33
- package/dist/es/web3.js +0 -2
- package/dist/es/web3.js.map +0 -1
|
@@ -2,7 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
export declare const RpcConditionType = "rpc";
|
|
3
3
|
export declare const rpcConditionSchema: z.ZodObject<{
|
|
4
4
|
conditionType: z.ZodDefault<z.ZodLiteral<"rpc">>;
|
|
5
|
-
chain: z.
|
|
5
|
+
chain: z.ZodNumber;
|
|
6
6
|
method: z.ZodEnum<["eth_getBalance"]>;
|
|
7
7
|
parameters: z.ZodUnion<[z.ZodTuple<[z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<[":userAddress", ":userAddressExternalEIP4361"]>, 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.ZodEnum<[":userAddress", ":userAddressExternalEIP4361"]>, z.ZodString]>], null>]>;
|
|
8
8
|
returnValueTest: z.ZodObject<{
|
|
@@ -20,23 +20,23 @@ export declare const rpcConditionSchema: z.ZodObject<{
|
|
|
20
20
|
}>;
|
|
21
21
|
}, "strip", z.ZodTypeAny, {
|
|
22
22
|
conditionType: "rpc";
|
|
23
|
-
|
|
23
|
+
method: "eth_getBalance";
|
|
24
24
|
returnValueTest: {
|
|
25
25
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
26
26
|
index?: number | undefined;
|
|
27
27
|
value?: any;
|
|
28
28
|
};
|
|
29
|
-
method: "eth_getBalance";
|
|
30
|
-
chain?: z.Primitive;
|
|
31
|
-
}, {
|
|
32
29
|
parameters: [string] | [string, string | number];
|
|
30
|
+
chain: number;
|
|
31
|
+
}, {
|
|
32
|
+
method: "eth_getBalance";
|
|
33
33
|
returnValueTest: {
|
|
34
34
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
35
35
|
index?: number | undefined;
|
|
36
36
|
value?: any;
|
|
37
37
|
};
|
|
38
|
-
|
|
38
|
+
parameters: [string] | [string, string | number];
|
|
39
|
+
chain: number;
|
|
39
40
|
conditionType?: "rpc" | undefined;
|
|
40
|
-
chain?: z.Primitive;
|
|
41
41
|
}>;
|
|
42
42
|
export type RpcConditionProps = z.infer<typeof rpcConditionSchema>;
|
|
@@ -1,33 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.rpcConditionSchema = exports.RpcConditionType = void 0;
|
|
27
4
|
const shared_1 = require("@nucypher/shared");
|
|
28
5
|
const zod_1 = require("zod");
|
|
29
|
-
const
|
|
30
|
-
const common_1 = __importStar(require("./common"));
|
|
6
|
+
const common_1 = require("./common");
|
|
31
7
|
const context_1 = require("./context");
|
|
32
8
|
const return_value_test_1 = require("./return-value-test");
|
|
33
9
|
exports.RpcConditionType = 'rpc';
|
|
@@ -45,7 +21,7 @@ const BlockOrContextParamSchema = zod_1.z.union([
|
|
|
45
21
|
// - web3py: https://web3py.readthedocs.io/en/stable/web3.eth.html#web3.eth.Eth.get_balance
|
|
46
22
|
exports.rpcConditionSchema = common_1.baseConditionSchema.extend({
|
|
47
23
|
conditionType: zod_1.z.literal(exports.RpcConditionType).default(exports.RpcConditionType),
|
|
48
|
-
chain: (
|
|
24
|
+
chain: zod_1.z.number().int().nonnegative(),
|
|
49
25
|
method: zod_1.z.enum(['eth_getBalance']),
|
|
50
26
|
parameters: zod_1.z.union([
|
|
51
27
|
// Spec requires 2 parameters: an address and a block identifier
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/rpc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/rpc.ts"],"names":[],"mappings":";;;AAAA,6CAA2E;AAC3E,6BAAwB;AAExB,qCAAkE;AAClE,uCAA+C;AAC/C,2DAA4D;AAE/C,QAAA,gBAAgB,GAAG,KAAK,CAAC;AAEtC,MAAM,iCAAiC,GAAG,OAAC,CAAC,KAAK,CAAC;IAChD,yBAAgB;IAChB,0BAAiB;IACjB,4BAAkB;CACnB,CAAC,CAAC;AACH,MAAM,yBAAyB,GAAG,OAAC,CAAC,KAAK,CAAC;IACxC,8BAAqB;IACrB,4BAAkB;CACnB,CAAC,CAAC;AAEH,sCAAsC;AACtC,gFAAgF;AAChF,2FAA2F;AAC9E,QAAA,kBAAkB,GAAG,4BAAmB,CAAC,MAAM,CAAC;IAC3D,aAAa,EAAE,OAAC,CAAC,OAAO,CAAC,wBAAgB,CAAC,CAAC,OAAO,CAAC,wBAAgB,CAAC;IACpE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACrC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAClC,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC;QAClB,gEAAgE;QAChE,OAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,EAAE,yBAAyB,CAAC,CAAC;QACvE,sGAAsG;QACtG,OAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAAC,CAAC;KAC7C,CAAC;IACF,eAAe,EAAE,yCAAqB,EAAE,2EAA2E;CACpH,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@ export declare const TimeConditionMethod = "blocktime";
|
|
|
4
4
|
export declare const timeConditionSchema: z.ZodObject<{
|
|
5
5
|
conditionType: z.ZodDefault<z.ZodLiteral<"time">>;
|
|
6
6
|
method: z.ZodDefault<z.ZodLiteral<"blocktime">>;
|
|
7
|
-
chain: z.
|
|
7
|
+
chain: z.ZodNumber;
|
|
8
8
|
returnValueTest: z.ZodObject<{
|
|
9
9
|
index: z.ZodOptional<z.ZodNumber>;
|
|
10
10
|
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
@@ -20,21 +20,21 @@ export declare const timeConditionSchema: z.ZodObject<{
|
|
|
20
20
|
}>;
|
|
21
21
|
}, "strip", z.ZodTypeAny, {
|
|
22
22
|
conditionType: "time";
|
|
23
|
+
method: "blocktime";
|
|
23
24
|
returnValueTest: {
|
|
24
25
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
25
26
|
index?: number | undefined;
|
|
26
27
|
value?: any;
|
|
27
28
|
};
|
|
28
|
-
|
|
29
|
-
chain?: z.Primitive;
|
|
29
|
+
chain: number;
|
|
30
30
|
}, {
|
|
31
31
|
returnValueTest: {
|
|
32
32
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
33
33
|
index?: number | undefined;
|
|
34
34
|
value?: any;
|
|
35
35
|
};
|
|
36
|
+
chain: number;
|
|
36
37
|
conditionType?: "time" | undefined;
|
|
37
38
|
method?: "blocktime" | undefined;
|
|
38
|
-
chain?: z.Primitive;
|
|
39
39
|
}>;
|
|
40
40
|
export type TimeConditionProps = z.infer<typeof timeConditionSchema>;
|
|
@@ -6,6 +6,7 @@ const compound_condition_1 = require("../compound-condition");
|
|
|
6
6
|
const contract_1 = require("./contract");
|
|
7
7
|
const if_then_else_1 = require("./if-then-else");
|
|
8
8
|
const json_api_1 = require("./json-api");
|
|
9
|
+
const json_rpc_1 = require("./json-rpc");
|
|
9
10
|
const rpc_1 = require("./rpc");
|
|
10
11
|
const sequential_1 = require("./sequential");
|
|
11
12
|
const time_1 = require("./time");
|
|
@@ -15,6 +16,7 @@ exports.anyConditionSchema = zod_1.z.lazy(() => zod_1.z.union([
|
|
|
15
16
|
contract_1.contractConditionSchema,
|
|
16
17
|
compound_condition_1.compoundConditionSchema,
|
|
17
18
|
json_api_1.jsonApiConditionSchema,
|
|
19
|
+
json_rpc_1.jsonRpcConditionSchema,
|
|
18
20
|
sequential_1.sequentialConditionSchema,
|
|
19
21
|
if_then_else_1.ifThenElseConditionSchema,
|
|
20
22
|
]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/utils.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,8DAAgE;AAEhE,yCAAqD;AACrD,iDAA2D;AAC3D,yCAAoD;AACpD,+BAA2C;AAC3C,6CAAyD;AACzD,iCAA6C;AAEhC,QAAA,kBAAkB,GAAgB,OAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACzD,OAAC,CAAC,KAAK,CAAC;IACN,wBAAkB;IAClB,0BAAmB;IACnB,kCAAuB;IACvB,4CAAuB;IACvB,iCAAsB;IACtB,sCAAyB;IACzB,wCAAyB;CAC1B,CAAC,CACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/utils.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,8DAAgE;AAEhE,yCAAqD;AACrD,iDAA2D;AAC3D,yCAAoD;AACpD,yCAAoD;AACpD,+BAA2C;AAC3C,6CAAyD;AACzD,iCAA6C;AAEhC,QAAA,kBAAkB,GAAgB,OAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACzD,OAAC,CAAC,KAAK,CAAC;IACN,wBAAkB;IAClB,0BAAmB;IACnB,kCAAuB;IACvB,4CAAuB;IACvB,iCAAsB;IACtB,iCAAsB;IACtB,sCAAyB;IACzB,wCAAyB;CAC1B,CAAC,CACH,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// avoid circular dependency on Condition class.
|
|
3
3
|
export * as contract from './contract';
|
|
4
4
|
export * as jsonApi from './json-api';
|
|
5
|
+
export * as jsonRpc from './json-rpc';
|
|
5
6
|
export * as rpc from './rpc';
|
|
6
7
|
export * as time from './time';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/conditions/base/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,gDAAgD;AAEhD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/conditions/base/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,gDAAgD;AAEhD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Condition } from '../condition';
|
|
2
2
|
import { JsonApiConditionProps } from '../schemas/json-api';
|
|
3
3
|
import { OmitConditionType } from '../shared';
|
|
4
|
-
export { JsonApiConditionProps, jsonApiConditionSchema, JsonApiConditionType,
|
|
4
|
+
export { JsonApiConditionProps, jsonApiConditionSchema, JsonApiConditionType, } from '../schemas/json-api';
|
|
5
5
|
export declare class JsonApiCondition extends Condition {
|
|
6
6
|
constructor(value: OmitConditionType<JsonApiConditionProps>);
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Condition } from '../condition';
|
|
2
2
|
import { jsonApiConditionSchema, JsonApiConditionType, } from '../schemas/json-api';
|
|
3
|
-
export { jsonApiConditionSchema, JsonApiConditionType,
|
|
3
|
+
export { jsonApiConditionSchema, JsonApiConditionType, } from '../schemas/json-api';
|
|
4
4
|
export class JsonApiCondition extends Condition {
|
|
5
5
|
constructor(value) {
|
|
6
6
|
super(jsonApiConditionSchema, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-api.js","sourceRoot":"","sources":["../../../../src/conditions/base/json-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAEL,sBAAsB,EACtB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"json-api.js","sourceRoot":"","sources":["../../../../src/conditions/base/json-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAEL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC7C,YAAY,KAA+C;QACzD,KAAK,CAAC,sBAAsB,EAAE;YAC5B,aAAa,EAAE,oBAAoB;YACnC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Condition } from '../condition';
|
|
2
|
+
import { JsonRpcConditionProps } from '../schemas/json-rpc';
|
|
3
|
+
import { OmitConditionType } from '../shared';
|
|
4
|
+
export { JsonRpcConditionProps, jsonRpcConditionSchema, JsonRpcConditionType, } from '../schemas/json-rpc';
|
|
5
|
+
export declare class JsonRpcCondition extends Condition {
|
|
6
|
+
constructor(value: OmitConditionType<JsonRpcConditionProps>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Condition } from '../condition';
|
|
2
|
+
import { jsonRpcConditionSchema, JsonRpcConditionType, } from '../schemas/json-rpc';
|
|
3
|
+
export { jsonRpcConditionSchema, JsonRpcConditionType, } from '../schemas/json-rpc';
|
|
4
|
+
export class JsonRpcCondition extends Condition {
|
|
5
|
+
constructor(value) {
|
|
6
|
+
super(jsonRpcConditionSchema, {
|
|
7
|
+
conditionType: JsonRpcConditionType,
|
|
8
|
+
...value,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=json-rpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../../../src/conditions/base/json-rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAEL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC7C,YAAY,KAA+C;QACzD,KAAK,CAAC,sBAAsB,EAAE;YAC5B,aAAa,EAAE,oBAAoB;YACnC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ContractCondition, ContractConditionType, } from './base/contract';
|
|
2
2
|
import { JsonApiCondition, JsonApiConditionType, } from './base/json-api';
|
|
3
|
+
import { JsonRpcCondition, JsonRpcConditionType, } from './base/json-rpc';
|
|
3
4
|
import { RpcCondition, RpcConditionType } from './base/rpc';
|
|
4
5
|
import { TimeCondition, TimeConditionType, } from './base/time';
|
|
5
6
|
import { CompoundCondition, CompoundConditionType, } from './compound-condition';
|
|
@@ -18,6 +19,8 @@ export class ConditionFactory {
|
|
|
18
19
|
return new ContractCondition(props);
|
|
19
20
|
case JsonApiConditionType:
|
|
20
21
|
return new JsonApiCondition(props);
|
|
22
|
+
case JsonRpcConditionType:
|
|
23
|
+
return new JsonRpcCondition(props);
|
|
21
24
|
// Logical Conditions
|
|
22
25
|
case CompoundConditionType:
|
|
23
26
|
return new CompoundCondition(props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-factory.js","sourceRoot":"","sources":["../../../src/conditions/condition-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAqB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EACL,aAAa,EAEb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,2BAA2B,IAAI,EAAE,CAAC;AAEpC,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAC,kBAAkB,CAAC,KAAqB;QACpD,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,kBAAkB;YAClB,KAAK,gBAAgB;gBACnB,OAAO,IAAI,YAAY,CAAC,KAA0B,CAAC,CAAC;YACtD,KAAK,iBAAiB;gBACpB,OAAO,IAAI,aAAa,CAAC,KAA2B,CAAC,CAAC;YACxD,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,oBAAoB;gBACvB,OAAO,IAAI,gBAAgB,CAAC,KAA8B,CAAC,CAAC;YAC9D,qBAAqB;YACrB,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,mBAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,mBAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"condition-factory.js","sourceRoot":"","sources":["../../../src/conditions/condition-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAqB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EACL,aAAa,EAEb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,2BAA2B,IAAI,EAAE,CAAC;AAEpC,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAC,kBAAkB,CAAC,KAAqB;QACpD,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,kBAAkB;YAClB,KAAK,gBAAgB;gBACnB,OAAO,IAAI,YAAY,CAAC,KAA0B,CAAC,CAAC;YACtD,KAAK,iBAAiB;gBACpB,OAAO,IAAI,aAAa,CAAC,KAA2B,CAAC,CAAC;YACxD,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,oBAAoB;gBACvB,OAAO,IAAI,gBAAgB,CAAC,KAA8B,CAAC,CAAC;YAC9D,KAAK,oBAAoB;gBACvB,OAAO,IAAI,gBAAgB,CAAC,KAA8B,CAAC,CAAC;YAC9D,qBAAqB;YACrB,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,mBAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,mBAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { ChainId } from '@nucypher/shared';
|
|
2
1
|
export declare const CONTEXT_PARAM_REGEXP: RegExp;
|
|
3
2
|
export declare const CONTEXT_PARAM_FULL_MATCH_REGEXP: RegExp;
|
|
4
3
|
export declare const CONTEXT_PARAM_PREFIX = ":";
|
|
5
|
-
export declare const SUPPORTED_CHAIN_IDS: ChainId[];
|
|
6
4
|
export declare const USER_ADDRESS_PARAMS: string[];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ChainId } from '@nucypher/shared';
|
|
2
1
|
import { USER_ADDRESS_PARAM_DEFAULT, USER_ADDRESS_PARAM_EXTERNAL_EIP4361, } from '@nucypher/taco-auth';
|
|
3
2
|
// Only allow alphanumeric characters and underscores
|
|
4
3
|
const contextParamRegexString = ':[a-zA-Z_][a-zA-Z0-9_]*';
|
|
@@ -6,12 +5,6 @@ export const CONTEXT_PARAM_REGEXP = new RegExp(contextParamRegexString);
|
|
|
6
5
|
// Entire string is context param
|
|
7
6
|
export const CONTEXT_PARAM_FULL_MATCH_REGEXP = new RegExp(`^${contextParamRegexString}$`);
|
|
8
7
|
export const CONTEXT_PARAM_PREFIX = ':';
|
|
9
|
-
export const SUPPORTED_CHAIN_IDS = [
|
|
10
|
-
ChainId.POLYGON,
|
|
11
|
-
ChainId.AMOY,
|
|
12
|
-
ChainId.SEPOLIA,
|
|
13
|
-
ChainId.ETHEREUM_MAINNET,
|
|
14
|
-
];
|
|
15
8
|
export const USER_ADDRESS_PARAMS = [
|
|
16
9
|
USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
|
|
17
10
|
// Ordering matters, this should always be last
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/conditions/const.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/conditions/const.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,mCAAmC,GACpC,MAAM,qBAAqB,CAAC;AAE7B,qDAAqD;AACrD,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAExE,iCAAiC;AACjC,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,MAAM,CACvD,IAAI,uBAAuB,GAAG,CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,mCAAmC;IACnC,+CAA+C;IAC/C,0BAA0B;CAC3B,CAAC"}
|
|
@@ -17,6 +17,7 @@ export declare class ConditionContext {
|
|
|
17
17
|
private fillAuthContextParameters;
|
|
18
18
|
private validateCustomContextParameter;
|
|
19
19
|
private static isContextParameter;
|
|
20
|
+
private static findContextParameter;
|
|
20
21
|
private static findContextParameters;
|
|
21
22
|
addCustomContextParameterValues(customContextParameters: Record<string, CustomContextParam>): void;
|
|
22
23
|
addAuthProvider(contextParam: string, authProvider: AuthProvider): void;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { toJSON } from '@nucypher/shared';
|
|
2
2
|
import { EIP4361AuthProvider, SingleSignOnEIP4361AuthProvider, USER_ADDRESS_PARAM_DEFAULT, USER_ADDRESS_PARAM_EXTERNAL_EIP4361, } from '@nucypher/taco-auth';
|
|
3
3
|
import { CoreConditions, CoreContext } from '../../types';
|
|
4
|
-
import { CompoundConditionType } from '../compound-condition';
|
|
5
4
|
import { ConditionExpression } from '../condition-expr';
|
|
6
|
-
import { CONTEXT_PARAM_FULL_MATCH_REGEXP, CONTEXT_PARAM_PREFIX, USER_ADDRESS_PARAMS, } from '../const';
|
|
7
|
-
import { JsonApiConditionType } from '../schemas/json-api';
|
|
5
|
+
import { CONTEXT_PARAM_FULL_MATCH_REGEXP, CONTEXT_PARAM_PREFIX, CONTEXT_PARAM_REGEXP, USER_ADDRESS_PARAMS, } from '../const';
|
|
8
6
|
const ERR_RESERVED_PARAM = (key) => `Cannot use reserved parameter name ${key} as custom parameter`;
|
|
9
7
|
const ERR_INVALID_CUSTOM_PARAM = (key) => `Custom parameter ${key} must start with ${CONTEXT_PARAM_PREFIX}`;
|
|
10
8
|
const ERR_AUTH_PROVIDER_REQUIRED = (key) => `No matching authentication provider to satisfy ${key} context variable in condition`;
|
|
@@ -87,62 +85,59 @@ export class ConditionContext {
|
|
|
87
85
|
static isContextParameter(param) {
|
|
88
86
|
return !!String(param).match(CONTEXT_PARAM_FULL_MATCH_REGEXP);
|
|
89
87
|
}
|
|
90
|
-
static
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const rvt = condition.returnValueTest.value;
|
|
96
|
-
// Return value test can be a single parameter or an array of parameters
|
|
97
|
-
if (Array.isArray(rvt)) {
|
|
98
|
-
rvt.forEach((value) => {
|
|
99
|
-
if (ConditionContext.isContextParameter(value)) {
|
|
100
|
-
requestedParameters.add(value);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
else if (ConditionContext.isContextParameter(rvt)) {
|
|
105
|
-
requestedParameters.add(rvt);
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
// Not a context parameter, we can skip
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
// Check condition parameters
|
|
112
|
-
for (const param of condition.parameters ?? []) {
|
|
113
|
-
if (this.isContextParameter(param)) {
|
|
114
|
-
requestedParameters.add(param);
|
|
115
|
-
}
|
|
88
|
+
static findContextParameter(value) {
|
|
89
|
+
const includedContextVars = new Set();
|
|
90
|
+
// value not set
|
|
91
|
+
if (!value) {
|
|
92
|
+
return includedContextVars;
|
|
116
93
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
for (const param of innerParams) {
|
|
122
|
-
requestedParameters.add(param);
|
|
123
|
-
}
|
|
94
|
+
if (typeof value === 'string') {
|
|
95
|
+
if (this.isContextParameter(value)) {
|
|
96
|
+
// entire string is context parameter
|
|
97
|
+
includedContextVars.add(String(value));
|
|
124
98
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
if (
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
if (condition.query) {
|
|
135
|
-
const queryParams = condition.query.match(":[a-zA-Z_]*");
|
|
136
|
-
if (queryParams) {
|
|
137
|
-
for (const param of queryParams) {
|
|
138
|
-
requestedParameters.add(param);
|
|
99
|
+
else {
|
|
100
|
+
// context var could be substring; find all matches
|
|
101
|
+
const contextVarMatches = value.match(
|
|
102
|
+
// RegExp with 'g' is stateful, so new instance needed every time
|
|
103
|
+
new RegExp(CONTEXT_PARAM_REGEXP.source, 'g'));
|
|
104
|
+
if (contextVarMatches) {
|
|
105
|
+
for (const match of contextVarMatches) {
|
|
106
|
+
includedContextVars.add(match);
|
|
139
107
|
}
|
|
140
108
|
}
|
|
141
109
|
}
|
|
142
|
-
|
|
143
|
-
|
|
110
|
+
}
|
|
111
|
+
else if (Array.isArray(value)) {
|
|
112
|
+
// array
|
|
113
|
+
value.forEach((subValue) => {
|
|
114
|
+
const contextVarsForValue = this.findContextParameter(subValue);
|
|
115
|
+
contextVarsForValue.forEach((contextVar) => {
|
|
116
|
+
includedContextVars.add(contextVar);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
else if (typeof value === 'object') {
|
|
121
|
+
// dictionary (Record<string, T> - complex object eg. Condition, ConditionVariable, ReturnValueTest etc.)
|
|
122
|
+
for (const [, entry] of Object.entries(value)) {
|
|
123
|
+
const contextVarsForValue = this.findContextParameter(entry);
|
|
124
|
+
contextVarsForValue.forEach((contextVar) => {
|
|
125
|
+
includedContextVars.add(contextVar);
|
|
126
|
+
});
|
|
144
127
|
}
|
|
145
128
|
}
|
|
129
|
+
return includedContextVars;
|
|
130
|
+
}
|
|
131
|
+
static findContextParameters(condition) {
|
|
132
|
+
// find all the context variables we need
|
|
133
|
+
const requestedParameters = new Set();
|
|
134
|
+
// iterate through all properties in ConditionProps
|
|
135
|
+
const properties = Object.keys(condition);
|
|
136
|
+
properties.forEach((prop) => {
|
|
137
|
+
this.findContextParameter(condition[prop]).forEach((contextVar) => {
|
|
138
|
+
requestedParameters.add(contextVar);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
146
141
|
return requestedParameters;
|
|
147
142
|
}
|
|
148
143
|
addCustomContextParameterValues(customContextParameters) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/conditions/context/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAGL,mBAAmB,EACnB,+BAA+B,EAC/B,0BAA0B,EAC1B,mCAAmC,GACpC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/conditions/context/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,3 +10,5 @@ export declare const baseConditionSchema: z.ZodObject<{
|
|
|
10
10
|
}>;
|
|
11
11
|
declare function createUnionSchema<T extends readonly Primitive[]>(values: T): z.ZodNever | z.ZodLiteral<Primitive> | z.ZodUnion<[z.ZodLiteral<Primitive>, z.ZodLiteral<Primitive>, ...z.ZodLiteral<Primitive>[]]>;
|
|
12
12
|
export default createUnionSchema;
|
|
13
|
+
export declare const jsonPathSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
14
|
+
export declare const httpsURLSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { JSONPath } from '@astronautlabs/jsonpath';
|
|
1
2
|
import { USER_ADDRESS_PARAM_DEFAULT, USER_ADDRESS_PARAM_EXTERNAL_EIP4361, } from '@nucypher/taco-auth';
|
|
2
3
|
import { z } from 'zod';
|
|
3
|
-
import { CONTEXT_PARAM_PREFIX } from '../const';
|
|
4
|
+
import { CONTEXT_PARAM_PREFIX, CONTEXT_PARAM_REGEXP } from '../const';
|
|
4
5
|
// We want to discriminate between ContextParams and plain strings
|
|
5
6
|
// If a string starts with `:`, it's a ContextParam
|
|
6
7
|
export const plainStringSchema = z.string().refine((str) => {
|
|
@@ -30,4 +31,33 @@ function createUnionSchema(values) {
|
|
|
30
31
|
return createUnion(values);
|
|
31
32
|
}
|
|
32
33
|
export default createUnionSchema;
|
|
34
|
+
const validateJSONPath = (jsonPath) => {
|
|
35
|
+
// account for embedded context variables
|
|
36
|
+
if (CONTEXT_PARAM_REGEXP.test(jsonPath)) {
|
|
37
|
+
// skip validation
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
JSONPath.parse(jsonPath);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
export const jsonPathSchema = z
|
|
49
|
+
.string()
|
|
50
|
+
.refine((val) => validateJSONPath(val), {
|
|
51
|
+
message: 'Invalid JSONPath expression',
|
|
52
|
+
});
|
|
53
|
+
const validateHttpsURL = (url) => {
|
|
54
|
+
return URL.canParse(url) && url.startsWith('https://');
|
|
55
|
+
};
|
|
56
|
+
// Use our own URL refinement check due to https://github.com/colinhacks/zod/issues/2236
|
|
57
|
+
export const httpsURLSchema = z
|
|
58
|
+
.string()
|
|
59
|
+
.url()
|
|
60
|
+
.refine((url) => validateHttpsURL(url), {
|
|
61
|
+
message: 'Invalid URL',
|
|
62
|
+
});
|
|
33
63
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,mCAAmC,GACpC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAa,CAAC,EAAc,MAAM,KAAK,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EACL,0BAA0B,EAC1B,mCAAmC,GACpC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAa,CAAC,EAAc,MAAM,KAAK,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEtE,kEAAkE;AAClE,mDAAmD;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,EAAE;IACN,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC/C,CAAC,EACD;IACE,OAAO,EAAE,+DAA+D,oBAAoB,GAAG;CAChG,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC;IACtC,0BAA0B;IAC1B,mCAAmC;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,WAAW,GAAG,CAGlB,MAAS,EACT,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAIzD,CAAC;IACF,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,SAAS,iBAAiB,CAAiC,MAAS;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,WAAW,CAChB,MAAqE,CACtE,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC;AAEjC,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAW,EAAE;IACrD,yCAAyC;IACzC,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,kBAAkB;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;IACtC,OAAO,EAAE,6BAA6B;CACvC,CAAC,CAAC;AAEL,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAW,EAAE;IAChD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,GAAG,EAAE;KACL,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;IACtC,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC"}
|
|
@@ -154,7 +154,7 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
154
154
|
index?: number | undefined;
|
|
155
155
|
value?: any;
|
|
156
156
|
}>;
|
|
157
|
-
chain: z.
|
|
157
|
+
chain: z.ZodNumber;
|
|
158
158
|
conditionType: z.ZodDefault<z.ZodLiteral<"contract">>;
|
|
159
159
|
contractAddress: z.ZodEffects<z.ZodString, string, string>;
|
|
160
160
|
standardContractType: z.ZodOptional<z.ZodEnum<["ERC20", "ERC721"]>>;
|
|
@@ -301,15 +301,15 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
301
301
|
parameters: z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">;
|
|
302
302
|
}, "strip", z.ZodTypeAny, {
|
|
303
303
|
conditionType: "contract";
|
|
304
|
-
|
|
304
|
+
method: string;
|
|
305
305
|
returnValueTest: {
|
|
306
306
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
307
307
|
index?: number | undefined;
|
|
308
308
|
value?: any;
|
|
309
309
|
};
|
|
310
|
-
|
|
310
|
+
parameters: any[];
|
|
311
|
+
chain: number;
|
|
311
312
|
contractAddress: string;
|
|
312
|
-
chain?: z.Primitive;
|
|
313
313
|
standardContractType?: "ERC20" | "ERC721" | undefined;
|
|
314
314
|
functionAbi?: {
|
|
315
315
|
type: "function";
|
|
@@ -331,15 +331,15 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
331
331
|
stateMutability: "view" | "pure";
|
|
332
332
|
} | undefined;
|
|
333
333
|
}, {
|
|
334
|
-
|
|
334
|
+
method: string;
|
|
335
335
|
returnValueTest: {
|
|
336
336
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
337
337
|
index?: number | undefined;
|
|
338
338
|
value?: any;
|
|
339
339
|
};
|
|
340
|
-
|
|
340
|
+
parameters: any[];
|
|
341
|
+
chain: number;
|
|
341
342
|
contractAddress: string;
|
|
342
|
-
chain?: z.Primitive;
|
|
343
343
|
conditionType?: "contract" | undefined;
|
|
344
344
|
standardContractType?: "ERC20" | "ERC721" | undefined;
|
|
345
345
|
functionAbi?: {
|
|
@@ -363,15 +363,15 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
363
363
|
} | undefined;
|
|
364
364
|
}>, {
|
|
365
365
|
conditionType: "contract";
|
|
366
|
-
|
|
366
|
+
method: string;
|
|
367
367
|
returnValueTest: {
|
|
368
368
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
369
369
|
index?: number | undefined;
|
|
370
370
|
value?: any;
|
|
371
371
|
};
|
|
372
|
-
|
|
372
|
+
parameters: any[];
|
|
373
|
+
chain: number;
|
|
373
374
|
contractAddress: string;
|
|
374
|
-
chain?: z.Primitive;
|
|
375
375
|
standardContractType?: "ERC20" | "ERC721" | undefined;
|
|
376
376
|
functionAbi?: {
|
|
377
377
|
type: "function";
|
|
@@ -393,15 +393,15 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
|
|
|
393
393
|
stateMutability: "view" | "pure";
|
|
394
394
|
} | undefined;
|
|
395
395
|
}, {
|
|
396
|
-
|
|
396
|
+
method: string;
|
|
397
397
|
returnValueTest: {
|
|
398
398
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
399
399
|
index?: number | undefined;
|
|
400
400
|
value?: any;
|
|
401
401
|
};
|
|
402
|
-
|
|
402
|
+
parameters: any[];
|
|
403
|
+
chain: number;
|
|
403
404
|
contractAddress: string;
|
|
404
|
-
chain?: z.Primitive;
|
|
405
405
|
conditionType?: "contract" | undefined;
|
|
406
406
|
standardContractType?: "ERC20" | "ERC721" | undefined;
|
|
407
407
|
functionAbi?: {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const JsonApiConditionType = "json-api";
|
|
3
|
-
export declare const jsonPathSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
4
3
|
export declare const jsonApiConditionSchema: z.ZodObject<{
|
|
5
4
|
conditionType: z.ZodDefault<z.ZodLiteral<"json-api">>;
|
|
6
|
-
endpoint: z.ZodString
|
|
5
|
+
endpoint: z.ZodEffects<z.ZodString, string, string>;
|
|
7
6
|
parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
8
7
|
query: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
9
8
|
authorizationToken: z.ZodOptional<z.ZodString>;
|