@nucypher/taco 0.1.0-rc.6 → 0.1.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/README.md +63 -1
- package/dist/cjs/conditions/base/contract.d.ts +17 -12
- package/dist/cjs/conditions/base/contract.js +17 -3
- package/dist/cjs/conditions/base/contract.js.map +1 -1
- package/dist/cjs/conditions/base/index.d.ts +3 -21
- package/dist/cjs/conditions/base/index.js +27 -37
- package/dist/cjs/conditions/base/index.js.map +1 -1
- package/dist/cjs/conditions/base/rpc.d.ts +16 -11
- package/dist/cjs/conditions/base/rpc.js +16 -6
- package/dist/cjs/conditions/base/rpc.js.map +1 -1
- package/dist/cjs/conditions/base/time.d.ts +10 -5
- package/dist/cjs/conditions/base/time.js +11 -1
- package/dist/cjs/conditions/base/time.js.map +1 -1
- package/dist/cjs/conditions/compound-condition.d.ts +10 -0
- package/dist/cjs/conditions/compound-condition.js +52 -5
- package/dist/cjs/conditions/compound-condition.js.map +1 -1
- package/dist/cjs/conditions/condition-expr.js +2 -2
- package/dist/cjs/conditions/condition-expr.js.map +1 -1
- package/dist/cjs/conditions/condition-factory.d.ts +4 -0
- package/dist/cjs/conditions/condition-factory.js +26 -0
- package/dist/cjs/conditions/condition-factory.js.map +1 -0
- package/dist/cjs/conditions/condition.d.ts +0 -1
- package/dist/cjs/conditions/condition.js +0 -22
- package/dist/cjs/conditions/condition.js.map +1 -1
- package/dist/cjs/conditions/const.d.ts +3 -0
- package/dist/cjs/conditions/const.js +6 -2
- package/dist/cjs/conditions/const.js.map +1 -1
- package/dist/cjs/conditions/context/context.d.ts +0 -2
- package/dist/cjs/conditions/context/context.js +7 -10
- package/dist/cjs/conditions/context/context.js.map +1 -1
- package/dist/cjs/conditions/index.d.ts +5 -6
- package/dist/cjs/conditions/index.js +7 -14
- package/dist/cjs/conditions/index.js.map +1 -1
- package/dist/cjs/conditions/predefined/erc721.d.ts +2 -2
- package/dist/cjs/conditions/predefined/erc721.js +5 -11
- package/dist/cjs/conditions/predefined/erc721.js.map +1 -1
- package/dist/cjs/conditions/predefined/index.d.ts +1 -1
- package/dist/cjs/conditions/predefined/index.js +25 -4
- package/dist/cjs/conditions/predefined/index.js.map +1 -1
- package/dist/cjs/conditions/{base/shared.d.ts → shared.d.ts} +7 -3
- package/dist/cjs/conditions/shared.js +31 -0
- package/dist/cjs/conditions/shared.js.map +1 -0
- package/dist/cjs/dkg.d.ts +1 -1
- package/dist/cjs/dkg.js +6 -4
- package/dist/cjs/dkg.js.map +1 -1
- package/dist/cjs/taco.d.ts +70 -1
- package/dist/cjs/taco.js +72 -4
- package/dist/cjs/taco.js.map +1 -1
- package/dist/cjs/tdec.d.ts +2 -1
- package/dist/cjs/tdec.js +6 -4
- package/dist/cjs/tdec.js.map +1 -1
- package/dist/es/conditions/base/contract.d.ts +17 -12
- package/dist/es/conditions/base/contract.js +15 -2
- package/dist/es/conditions/base/contract.js.map +1 -1
- package/dist/es/conditions/base/index.d.ts +3 -21
- package/dist/es/conditions/base/index.js +3 -28
- package/dist/es/conditions/base/index.js.map +1 -1
- package/dist/es/conditions/base/rpc.d.ts +16 -11
- package/dist/es/conditions/base/rpc.js +14 -5
- package/dist/es/conditions/base/rpc.js.map +1 -1
- package/dist/es/conditions/base/time.d.ts +10 -5
- package/dist/es/conditions/base/time.js +9 -0
- package/dist/es/conditions/base/time.js.map +1 -1
- package/dist/es/conditions/compound-condition.d.ts +10 -0
- package/dist/es/conditions/compound-condition.js +50 -4
- package/dist/es/conditions/compound-condition.js.map +1 -1
- package/dist/es/conditions/condition-expr.js +2 -2
- package/dist/es/conditions/condition-expr.js.map +1 -1
- package/dist/es/conditions/condition-factory.d.ts +4 -0
- package/dist/es/conditions/condition-factory.js +22 -0
- package/dist/es/conditions/condition-factory.js.map +1 -0
- package/dist/es/conditions/condition.d.ts +0 -1
- package/dist/es/conditions/condition.js +0 -22
- package/dist/es/conditions/condition.js.map +1 -1
- package/dist/es/conditions/const.d.ts +3 -0
- package/dist/es/conditions/const.js +5 -1
- package/dist/es/conditions/const.js.map +1 -1
- package/dist/es/conditions/context/context.d.ts +0 -2
- package/dist/es/conditions/context/context.js +3 -6
- package/dist/es/conditions/context/context.js.map +1 -1
- package/dist/es/conditions/index.d.ts +5 -6
- package/dist/es/conditions/index.js +5 -6
- package/dist/es/conditions/index.js.map +1 -1
- package/dist/es/conditions/predefined/erc721.d.ts +2 -2
- package/dist/es/conditions/predefined/erc721.js +1 -7
- package/dist/es/conditions/predefined/erc721.js.map +1 -1
- package/dist/es/conditions/predefined/index.d.ts +1 -1
- package/dist/es/conditions/predefined/index.js +1 -1
- package/dist/es/conditions/predefined/index.js.map +1 -1
- package/dist/es/conditions/{base/shared.d.ts → shared.d.ts} +7 -3
- package/dist/es/conditions/shared.js +28 -0
- package/dist/es/conditions/shared.js.map +1 -0
- package/dist/es/dkg.d.ts +1 -1
- package/dist/es/dkg.js +6 -4
- package/dist/es/dkg.js.map +1 -1
- package/dist/es/taco.d.ts +70 -1
- package/dist/es/taco.js +71 -3
- package/dist/es/taco.js.map +1 -1
- package/dist/es/tdec.d.ts +2 -1
- package/dist/es/tdec.js +5 -3
- package/dist/es/tdec.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.es.tsbuildinfo +1 -1
- package/package.json +8 -7
- package/dist/cjs/conditions/base/shared.js +0 -17
- package/dist/cjs/conditions/base/shared.js.map +0 -1
- package/dist/es/conditions/base/shared.js +0 -14
- package/dist/es/conditions/base/shared.js.map +0 -1
|
@@ -2,12 +2,14 @@ import { z } from 'zod';
|
|
|
2
2
|
import { contractConditionSchema } from './base/contract';
|
|
3
3
|
import { rpcConditionSchema } from './base/rpc';
|
|
4
4
|
import { timeConditionSchema } from './base/time';
|
|
5
|
+
import { Condition } from './condition';
|
|
5
6
|
export const CompoundConditionType = 'compound';
|
|
6
|
-
export const compoundConditionSchema = z
|
|
7
|
+
export const compoundConditionSchema = z
|
|
8
|
+
.object({
|
|
7
9
|
conditionType: z
|
|
8
10
|
.literal(CompoundConditionType)
|
|
9
11
|
.default(CompoundConditionType),
|
|
10
|
-
operator: z.enum(['and', 'or']),
|
|
12
|
+
operator: z.enum(['and', 'or', 'not']),
|
|
11
13
|
operands: z
|
|
12
14
|
.array(z.lazy(() => z.union([
|
|
13
15
|
rpcConditionSchema,
|
|
@@ -15,6 +17,50 @@ export const compoundConditionSchema = z.object({
|
|
|
15
17
|
contractConditionSchema,
|
|
16
18
|
compoundConditionSchema,
|
|
17
19
|
])))
|
|
18
|
-
.min(
|
|
19
|
-
})
|
|
20
|
+
.min(1),
|
|
21
|
+
})
|
|
22
|
+
.refine((condition) => {
|
|
23
|
+
// 'and' and 'or' operators must have at least 2 operands
|
|
24
|
+
if (['and', 'or'].includes(condition.operator)) {
|
|
25
|
+
return condition.operands.length >= 2;
|
|
26
|
+
}
|
|
27
|
+
// 'not' operator must have exactly 1 operand
|
|
28
|
+
if (condition.operator === 'not') {
|
|
29
|
+
return condition.operands.length === 1;
|
|
30
|
+
}
|
|
31
|
+
// We test positive cases exhaustively, so we return false here:
|
|
32
|
+
return false;
|
|
33
|
+
}, ({ operands, operator }) => ({
|
|
34
|
+
message: `Invalid number of operands ${operands.length} for operator "${operator}"`,
|
|
35
|
+
path: ['operands'],
|
|
36
|
+
}));
|
|
37
|
+
export class CompoundCondition extends Condition {
|
|
38
|
+
constructor(value) {
|
|
39
|
+
super(compoundConditionSchema, {
|
|
40
|
+
conditionType: CompoundConditionType,
|
|
41
|
+
...value,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
static withOperator(operands, operator) {
|
|
45
|
+
const asObjects = operands.map((operand) => {
|
|
46
|
+
if (operand instanceof Condition) {
|
|
47
|
+
return operand.toObj();
|
|
48
|
+
}
|
|
49
|
+
return operand;
|
|
50
|
+
});
|
|
51
|
+
return new CompoundCondition({
|
|
52
|
+
operator,
|
|
53
|
+
operands: asObjects,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
static or(conditions) {
|
|
57
|
+
return CompoundCondition.withOperator(conditions, 'or');
|
|
58
|
+
}
|
|
59
|
+
static and(conditions) {
|
|
60
|
+
return CompoundCondition.withOperator(conditions, 'and');
|
|
61
|
+
}
|
|
62
|
+
static not(condition) {
|
|
63
|
+
return CompoundCondition.withOperator([condition], 'not');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
20
66
|
//# sourceMappingURL=compound-condition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compound-condition.js","sourceRoot":"","sources":["../../../src/conditions/compound-condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"compound-condition.js","sourceRoot":"","sources":["../../../src/conditions/compound-condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AAGxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAEhD,MAAM,CAAC,MAAM,uBAAuB,GAAgB,CAAC;KAClD,MAAM,CAAC;IACN,aAAa,EAAE,CAAC;SACb,OAAO,CAAC,qBAAqB,CAAC;SAC9B,OAAO,CAAC,qBAAqB,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,QAAQ,EAAE,CAAC;SACR,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACV,CAAC,CAAC,KAAK,CAAC;QACN,kBAAkB;QAClB,mBAAmB;QACnB,uBAAuB;QACvB,uBAAuB;KACxB,CAAC,CACH,CACF;SACA,GAAG,CAAC,CAAC,CAAC;CACV,CAAC;KACD,MAAM,CACL,CAAC,SAAS,EAAE,EAAE;IACZ,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;QAC9C,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;KACvC;IAED,6CAA6C;IAC7C,IAAI,SAAS,CAAC,QAAQ,KAAK,KAAK,EAAE;QAChC,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;KACxC;IAED,gEAAgE;IAChE,OAAO,KAAK,CAAC;AACf,CAAC,EACD,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,EAAE,8BAA8B,QAAQ,CAAC,MAAM,kBAAkB,QAAQ,GAAG;IACnF,IAAI,EAAE,CAAC,UAAU,CAAC;CACnB,CAAC,CACH,CAAC;AAMJ,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC9C,YAAY,KAAgD;QAC1D,KAAK,CAAC,uBAAuB,EAAE;YAC7B,aAAa,EAAE,qBAAqB;YACpC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,YAAY,CACzB,QAA4B,EAC5B,QAA8B;QAE9B,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI,OAAO,YAAY,SAAS,EAAE;gBAChC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;aACxB;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,iBAAiB,CAAC;YAC3B,QAAQ;YACR,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,UAA8B;QAC7C,OAAO,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,UAA8B;QAC9C,OAAO,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,SAA2B;QAC3C,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Conditions as WASMConditions } from '@nucypher/nucypher-core';
|
|
2
2
|
import { toJSON } from '@nucypher/shared';
|
|
3
3
|
import { SemVer } from 'semver';
|
|
4
|
-
import {
|
|
4
|
+
import { ConditionFactory } from './condition-factory';
|
|
5
5
|
import { ConditionContext } from './context';
|
|
6
6
|
const ERR_VERSION = (provided, current) => `Version provided, ${provided}, is incompatible with current version, ${current}`;
|
|
7
7
|
const ERR_CONDITION = (condition) => `Invalid condition: unrecognized condition data ${JSON.stringify(condition)}`;
|
|
@@ -29,7 +29,7 @@ export class ConditionExpression {
|
|
|
29
29
|
if (!obj.condition) {
|
|
30
30
|
throw new Error(ERR_CONDITION(obj.condition));
|
|
31
31
|
}
|
|
32
|
-
const condition =
|
|
32
|
+
const condition = ConditionFactory.conditionFromProps(obj.condition);
|
|
33
33
|
return new ConditionExpression(condition, obj.version);
|
|
34
34
|
}
|
|
35
35
|
toJson() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-expr.js","sourceRoot":"","sources":["../../../src/conditions/condition-expr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"condition-expr.js","sourceRoot":"","sources":["../../../src/conditions/condition-expr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAsB,MAAM,WAAW,CAAC;AAEjE,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE,CACxD,qBAAqB,QAAQ,2CAA2C,OAAO,EAAE,CAAC;AACpF,MAAM,aAAa,GAAG,CAAC,SAAkC,EAAE,EAAE,CAC3D,kDAAkD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AAOhF,MAAM,OAAO,mBAAmB;IAIZ;IACA;IAJX,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAEhC,YACkB,SAAoB,EACpB,UAAkB,mBAAmB,CAAC,OAAO;QAD7C,cAAS,GAAT,SAAS,CAAW;QACpB,YAAO,GAAP,OAAO,CAAsC;IAC5D,CAAC;IAEG,KAAK;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;SACV,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,GAA4B;QAChD,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,eAAe,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/C;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM;QACX,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAY;QACjC,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,gBAAgB;QACrB,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,UAA0B;QACzD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,YAAY,CACjB,QAAmC,EACnC,mBAAuD,EAAE,EACzD,MAAsB;QAEtB,OAAO,IAAI,gBAAgB,CACzB,QAAQ,EACR,IAAI,CAAC,SAAS,EACd,gBAAgB,EAChB,MAAM,CACP,CAAC;IACJ,CAAC;IAEM,qBAAqB;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,KAA0B;QACtC,OAAO;YACL,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;SACvC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ContractCondition, ContractConditionType, } from './base/contract';
|
|
2
|
+
import { RpcCondition, RpcConditionType } from './base/rpc';
|
|
3
|
+
import { TimeCondition, TimeConditionType, } from './base/time';
|
|
4
|
+
import { CompoundCondition, CompoundConditionType, } from './compound-condition';
|
|
5
|
+
const ERR_INVALID_CONDITION_TYPE = (type) => `Invalid condition type: ${type}`;
|
|
6
|
+
export class ConditionFactory {
|
|
7
|
+
static conditionFromProps(props) {
|
|
8
|
+
switch (props.conditionType) {
|
|
9
|
+
case RpcConditionType:
|
|
10
|
+
return new RpcCondition(props);
|
|
11
|
+
case TimeConditionType:
|
|
12
|
+
return new TimeCondition(props);
|
|
13
|
+
case ContractConditionType:
|
|
14
|
+
return new ContractCondition(props);
|
|
15
|
+
case CompoundConditionType:
|
|
16
|
+
return new CompoundCondition(props);
|
|
17
|
+
default:
|
|
18
|
+
throw new Error(ERR_INVALID_CONDITION_TYPE(props.conditionType));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=condition-factory.js.map
|
|
@@ -0,0 +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,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;AAG9B,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;YAC3B,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,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SACpE;IACH,CAAC;CACF"}
|
|
@@ -1,25 +1,6 @@
|
|
|
1
1
|
import { objectEquals } from '@nucypher/shared';
|
|
2
|
-
import { CompoundCondition, ContractCondition, ContractConditionType, RpcCondition, RpcConditionType, TimeCondition, TimeConditionType, } from './base';
|
|
3
|
-
import { CompoundConditionType, } from './compound-condition';
|
|
4
2
|
import { USER_ADDRESS_PARAM } from './const';
|
|
5
3
|
const ERR_INVALID_CONDITION = (error) => `Invalid condition: ${JSON.stringify(error.issues)}`;
|
|
6
|
-
const ERR_INVALID_CONDITION_TYPE = (type) => `Invalid condition type: ${type}`;
|
|
7
|
-
class ConditionFactory {
|
|
8
|
-
static conditionFromProps(obj) {
|
|
9
|
-
switch (obj.conditionType) {
|
|
10
|
-
case RpcConditionType:
|
|
11
|
-
return new RpcCondition(obj);
|
|
12
|
-
case TimeConditionType:
|
|
13
|
-
return new TimeCondition(obj);
|
|
14
|
-
case ContractConditionType:
|
|
15
|
-
return new ContractCondition(obj);
|
|
16
|
-
case CompoundConditionType:
|
|
17
|
-
return new CompoundCondition(obj);
|
|
18
|
-
default:
|
|
19
|
-
throw new Error(ERR_INVALID_CONDITION_TYPE(obj.conditionType));
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
4
|
export class Condition {
|
|
24
5
|
schema;
|
|
25
6
|
value;
|
|
@@ -49,9 +30,6 @@ export class Condition {
|
|
|
49
30
|
}
|
|
50
31
|
return data;
|
|
51
32
|
}
|
|
52
|
-
static fromObj(obj) {
|
|
53
|
-
return ConditionFactory.conditionFromProps(obj);
|
|
54
|
-
}
|
|
55
33
|
equals(other) {
|
|
56
34
|
return objectEquals(this.toObj(), other.toObj());
|
|
57
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,
|
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAK7C,MAAM,qBAAqB,GAAG,CAAC,KAAiB,EAAE,EAAE,CAClD,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AAEvD,MAAM,OAAO,SAAS;IAEF;IACA;IAFlB,YACkB,MAAuB,EACvB,KAAqB;QADrB,WAAM,GAAN,MAAM,CAAiB;QACvB,UAAK,GAAL,KAAK,CAAgB;QAErC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,QAAQ,CACpB,MAAuB,EACvB,KAAqB;QAKrB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;SAC9B;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;SAC/C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,KAAgB;QAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;CACF"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { ChainId } from '@nucypher/shared';
|
|
2
2
|
export declare const USER_ADDRESS_PARAM = ":userAddress";
|
|
3
3
|
export declare const ETH_ADDRESS_REGEXP: RegExp;
|
|
4
|
+
export declare const CONTEXT_PARAM_REGEXP: RegExp;
|
|
5
|
+
export declare const CONTEXT_PARAM_PREFIX = ":";
|
|
4
6
|
export declare const SUPPORTED_CHAIN_IDS: ChainId[];
|
|
7
|
+
export declare const RESERVED_CONTEXT_PARAMS: string[];
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { ChainId } from '@nucypher/shared';
|
|
2
2
|
export const USER_ADDRESS_PARAM = ':userAddress';
|
|
3
3
|
export const ETH_ADDRESS_REGEXP = new RegExp('^0x[a-fA-F0-9]{40}$');
|
|
4
|
+
// Only allow alphanumeric characters and underscores
|
|
5
|
+
export const CONTEXT_PARAM_REGEXP = new RegExp('^:[a-zA-Z_][a-zA-Z0-9_]*$');
|
|
6
|
+
export const CONTEXT_PARAM_PREFIX = ':';
|
|
4
7
|
export const SUPPORTED_CHAIN_IDS = [
|
|
5
8
|
ChainId.POLYGON,
|
|
6
9
|
ChainId.MUMBAI,
|
|
7
|
-
ChainId.
|
|
10
|
+
ChainId.SEPOLIA,
|
|
8
11
|
ChainId.ETHEREUM_MAINNET,
|
|
9
12
|
];
|
|
13
|
+
export const RESERVED_CONTEXT_PARAMS = [USER_ADDRESS_PARAM];
|
|
10
14
|
//# sourceMappingURL=const.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/conditions/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/conditions/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEpE,qDAAqD;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,gBAAgB;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -4,8 +4,6 @@ import { Condition } from '../condition';
|
|
|
4
4
|
import { TypedSignature } from './providers';
|
|
5
5
|
export type CustomContextParam = string | number | boolean;
|
|
6
6
|
export type ContextParam = CustomContextParam | TypedSignature;
|
|
7
|
-
export declare const RESERVED_CONTEXT_PARAMS: string[];
|
|
8
|
-
export declare const CONTEXT_PARAM_PREFIX = ":";
|
|
9
7
|
export declare class ConditionContext {
|
|
10
8
|
private readonly provider;
|
|
11
9
|
private readonly condition;
|
|
@@ -2,10 +2,8 @@ import { Context, Conditions as WASMConditions } from '@nucypher/nucypher-core';
|
|
|
2
2
|
import { fromJSON, toJSON } from '@nucypher/shared';
|
|
3
3
|
import { CompoundConditionType } from '../compound-condition';
|
|
4
4
|
import { ConditionExpression } from '../condition-expr';
|
|
5
|
-
import { USER_ADDRESS_PARAM } from '../const';
|
|
5
|
+
import { CONTEXT_PARAM_PREFIX, CONTEXT_PARAM_REGEXP, RESERVED_CONTEXT_PARAMS, USER_ADDRESS_PARAM, } from '../const';
|
|
6
6
|
import { WalletAuthenticationProvider } from './providers';
|
|
7
|
-
export const RESERVED_CONTEXT_PARAMS = [USER_ADDRESS_PARAM];
|
|
8
|
-
export const CONTEXT_PARAM_PREFIX = ':';
|
|
9
7
|
const ERR_RESERVED_PARAM = (key) => `Cannot use reserved parameter name ${key} as custom parameter`;
|
|
10
8
|
const ERR_INVALID_CUSTOM_PARAM = (key) => `Custom parameter ${key} must start with ${CONTEXT_PARAM_PREFIX}`;
|
|
11
9
|
const ERR_SIGNER_REQUIRED = `Signer required to satisfy ${USER_ADDRESS_PARAM} context variable in condition`;
|
|
@@ -78,7 +76,7 @@ export class ConditionContext {
|
|
|
78
76
|
return parameters;
|
|
79
77
|
}
|
|
80
78
|
isContextParameter(param) {
|
|
81
|
-
return
|
|
79
|
+
return !!String(param).match(CONTEXT_PARAM_REGEXP);
|
|
82
80
|
}
|
|
83
81
|
findRequestedParameters(condition) {
|
|
84
82
|
// First, we want to find all the parameters we need to add
|
|
@@ -120,8 +118,7 @@ export class ConditionContext {
|
|
|
120
118
|
return new Context(asJson);
|
|
121
119
|
}
|
|
122
120
|
static fromConditions(provider, conditions, signer, customParameters) {
|
|
123
|
-
|
|
124
|
-
return new ConditionContext(provider, innerCondition, customParameters, signer);
|
|
121
|
+
return new ConditionContext(provider, ConditionExpression.fromWASMConditions(conditions).condition, customParameters, signer);
|
|
125
122
|
}
|
|
126
123
|
}
|
|
127
124
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/conditions/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/conditions/context/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as base from './base';
|
|
2
2
|
import * as predefined from './predefined';
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export
|
|
6
|
-
export {
|
|
7
|
-
export
|
|
8
|
-
export { ConditionContext, CustomContextParam } from './context';
|
|
3
|
+
export * as compound from './compound-condition';
|
|
4
|
+
export * as condition from './condition';
|
|
5
|
+
export * as conditionExpr from './condition-expr';
|
|
6
|
+
export { ConditionFactory } from './condition-factory';
|
|
7
|
+
export * as context from './context';
|
|
9
8
|
export { base, predefined };
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as base from './base';
|
|
2
2
|
import * as predefined from './predefined';
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export
|
|
6
|
-
export {
|
|
7
|
-
export
|
|
8
|
-
export { ConditionContext } from './context';
|
|
3
|
+
export * as compound from './compound-condition';
|
|
4
|
+
export * as condition from './condition';
|
|
5
|
+
export * as conditionExpr from './condition-expr';
|
|
6
|
+
export { ConditionFactory } from './condition-factory';
|
|
7
|
+
export * as context from './context';
|
|
9
8
|
export { base, predefined };
|
|
10
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/conditions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/conditions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ContractCondition, ContractConditionProps } from '../base';
|
|
1
|
+
import { ContractCondition, ContractConditionProps } from '../base/contract';
|
|
2
2
|
type ERC721OwnershipFields = 'contractAddress' | 'chain' | 'parameters';
|
|
3
3
|
export declare class ERC721Ownership extends ContractCondition {
|
|
4
4
|
constructor(value: Pick<ContractConditionProps, ERC721OwnershipFields>);
|
|
5
5
|
}
|
|
6
|
-
type ERC721BalanceFields = 'contractAddress' | 'chain';
|
|
6
|
+
type ERC721BalanceFields = 'contractAddress' | 'chain' | 'returnValueTest';
|
|
7
7
|
export declare class ERC721Balance extends ContractCondition {
|
|
8
8
|
constructor(value: Pick<ContractConditionProps, ERC721BalanceFields>);
|
|
9
9
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { ContractCondition, ContractConditionType, } from '../base';
|
|
1
|
+
import { ContractCondition, ContractConditionType, } from '../base/contract';
|
|
2
2
|
import { USER_ADDRESS_PARAM } from '../const';
|
|
3
3
|
const ERC721OwnershipDefaults = {
|
|
4
4
|
conditionType: ContractConditionType,
|
|
5
5
|
method: 'ownerOf',
|
|
6
6
|
standardContractType: 'ERC721',
|
|
7
7
|
returnValueTest: {
|
|
8
|
-
index: 0,
|
|
9
8
|
comparator: '==',
|
|
10
9
|
value: USER_ADDRESS_PARAM,
|
|
11
10
|
},
|
|
@@ -20,11 +19,6 @@ const ERC721BalanceDefaults = {
|
|
|
20
19
|
method: 'balanceOf',
|
|
21
20
|
parameters: [USER_ADDRESS_PARAM],
|
|
22
21
|
standardContractType: 'ERC721',
|
|
23
|
-
returnValueTest: {
|
|
24
|
-
index: 0,
|
|
25
|
-
comparator: '>',
|
|
26
|
-
value: '0',
|
|
27
|
-
},
|
|
28
22
|
};
|
|
29
23
|
export class ERC721Balance extends ContractCondition {
|
|
30
24
|
constructor(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc721.js","sourceRoot":"","sources":["../../../../src/conditions/predefined/erc721.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,
|
|
1
|
+
{"version":3,"file":"erc721.js","sourceRoot":"","sources":["../../../../src/conditions/predefined/erc721.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAI9C,MAAM,uBAAuB,GAGzB;IACF,aAAa,EAAE,qBAAqB;IACpC,MAAM,EAAE,SAAS;IACjB,oBAAoB,EAAE,QAAQ;IAC9B,eAAe,EAAE;QACf,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,kBAAkB;KAC1B;CACF,CAAC;AAEF,MAAM,OAAO,eAAgB,SAAQ,iBAAiB;IACpD,YAAY,KAA0D;QACpE,KAAK,CAAC,EAAE,GAAG,uBAAuB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAID,MAAM,qBAAqB,GACzB;IACE,aAAa,EAAE,qBAAqB;IACpC,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,CAAC,kBAAkB,CAAC;IAChC,oBAAoB,EAAE,QAAQ;CAC/B,CAAC;AAEJ,MAAM,OAAO,aAAc,SAAQ,iBAAiB;IAClD,YAAY,KAAwD;QAClE,KAAK,CAAC,EAAE,GAAG,qBAAqB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * as erc721 from './erc721';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * as erc721 from './erc721';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/conditions/predefined/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/conditions/predefined/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
export declare const contextParamSchema: z.ZodString;
|
|
3
|
+
export declare const plainStringSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
4
|
+
export declare const paramOrContextParamSchema: z.ZodSchema;
|
|
2
5
|
export declare const returnValueTestSchema: z.ZodObject<{
|
|
3
6
|
index: z.ZodOptional<z.ZodNumber>;
|
|
4
7
|
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
5
|
-
value: z.
|
|
8
|
+
value: z.ZodType<any, z.ZodTypeDef, any>;
|
|
6
9
|
}, "strip", z.ZodTypeAny, {
|
|
7
10
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
8
11
|
index?: number | undefined;
|
|
9
|
-
value?:
|
|
12
|
+
value?: any;
|
|
10
13
|
}, {
|
|
11
14
|
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
12
15
|
index?: number | undefined;
|
|
13
|
-
value?:
|
|
16
|
+
value?: any;
|
|
14
17
|
}>;
|
|
15
18
|
export type ReturnValueTestProps = z.infer<typeof returnValueTestSchema>;
|
|
16
19
|
export declare const EthAddressOrUserAddressSchema: z.ZodUnion<[z.ZodString, z.ZodLiteral<":userAddress">]>;
|
|
20
|
+
export type OmitConditionType<T> = Omit<T, 'conditionType'>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { CONTEXT_PARAM_PREFIX, CONTEXT_PARAM_REGEXP, ETH_ADDRESS_REGEXP, USER_ADDRESS_PARAM, } from './const';
|
|
3
|
+
export const contextParamSchema = z.string().regex(CONTEXT_PARAM_REGEXP);
|
|
4
|
+
// We want to discriminate between ContextParams and plain strings
|
|
5
|
+
// If a string starts with `:`, it's a ContextParam
|
|
6
|
+
export const plainStringSchema = z.string().refine((str) => {
|
|
7
|
+
return !str.startsWith(CONTEXT_PARAM_PREFIX);
|
|
8
|
+
}, {
|
|
9
|
+
message: 'String must not be a context parameter i.e. not start with ":"',
|
|
10
|
+
});
|
|
11
|
+
const paramSchema = z.union([plainStringSchema, z.boolean(), z.number()]);
|
|
12
|
+
export const paramOrContextParamSchema = z.union([
|
|
13
|
+
paramSchema,
|
|
14
|
+
contextParamSchema,
|
|
15
|
+
z.lazy(() => z.array(paramOrContextParamSchema)),
|
|
16
|
+
]);
|
|
17
|
+
export const returnValueTestSchema = z.object({
|
|
18
|
+
index: z.number().int().nonnegative().optional(),
|
|
19
|
+
comparator: z.enum(['==', '>', '<', '>=', '<=', '!=']),
|
|
20
|
+
value: paramOrContextParamSchema,
|
|
21
|
+
});
|
|
22
|
+
const EthAddressSchema = z.string().regex(ETH_ADDRESS_REGEXP);
|
|
23
|
+
const UserAddressSchema = z.literal(USER_ADDRESS_PARAM);
|
|
24
|
+
export const EthAddressOrUserAddressSchema = z.union([
|
|
25
|
+
EthAddressSchema,
|
|
26
|
+
UserAddressSchema,
|
|
27
|
+
]);
|
|
28
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/conditions/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACzE,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,gEAAgE;CAC1E,CACF,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,yBAAyB,GAAgB,CAAC,CAAC,KAAK,CAAC;IAC5D,WAAW;IACX,kBAAkB;IAClB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAChD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,KAAK,EAAE,yBAAyB;CACjC,CAAC,CAAC;AAIH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAC9D,MAAM,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC;IACnD,gBAAgB;IAChB,iBAAiB;CAClB,CAAC,CAAC"}
|
package/dist/es/dkg.d.ts
CHANGED
|
@@ -23,5 +23,5 @@ export declare class DkgClient {
|
|
|
23
23
|
static initializeRitual(provider: ethers.providers.Provider, signer: ethers.Signer, domain: Domain, ursulas: ChecksumAddress[], authority: string, duration: BigNumberish, accessController: string, waitUntilEnd?: boolean): Promise<number | undefined>;
|
|
24
24
|
private static waitUntilRitualEnd;
|
|
25
25
|
static getRitual(provider: ethers.providers.Provider, domain: Domain, ritualId: number): Promise<DkgRitual>;
|
|
26
|
-
static
|
|
26
|
+
static getActiveRitual(provider: ethers.providers.Provider, domain: Domain, ritualId: number): Promise<DkgRitual>;
|
|
27
27
|
}
|
package/dist/es/dkg.js
CHANGED
|
@@ -35,9 +35,11 @@ export class DkgRitual {
|
|
|
35
35
|
].every(Boolean);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
const ERR_RITUAL_NOT_FINALIZED = (ritualId, ritual) => `Ritual ${ritualId} is not finalized. State: ${ritual.state}`;
|
|
38
39
|
export class DkgClient {
|
|
39
40
|
static async initializeRitual(provider, signer, domain, ursulas, authority, duration, accessController, waitUntilEnd = false) {
|
|
40
|
-
const ritualId = await DkgCoordinatorAgent.initializeRitual(provider, signer, domain, ursulas.sort(),
|
|
41
|
+
const ritualId = await DkgCoordinatorAgent.initializeRitual(provider, signer, domain, ursulas.sort(), // Contract call requires sorted addresses
|
|
42
|
+
authority, duration, accessController);
|
|
41
43
|
if (waitUntilEnd) {
|
|
42
44
|
const isSuccessful = await DkgClient.waitUntilRitualEnd(provider, domain, ritualId);
|
|
43
45
|
if (!isSuccessful) {
|
|
@@ -69,10 +71,10 @@ export class DkgClient {
|
|
|
69
71
|
]);
|
|
70
72
|
return new DkgRitual(ritualId, DkgPublicKey.fromBytes(dkgPkBytes), ritual.dkgSize, ritual.threshold, ritualState);
|
|
71
73
|
}
|
|
72
|
-
static async
|
|
74
|
+
static async getActiveRitual(provider, domain, ritualId) {
|
|
73
75
|
const ritual = await DkgClient.getRitual(provider, domain, ritualId);
|
|
74
|
-
if (ritual.state !== DkgRitualState.
|
|
75
|
-
throw new Error(
|
|
76
|
+
if (ritual.state !== DkgRitualState.ACTIVE) {
|
|
77
|
+
throw new Error(ERR_RITUAL_NOT_FINALIZED(ritualId, ritual));
|
|
76
78
|
}
|
|
77
79
|
return ritual;
|
|
78
80
|
}
|
package/dist/es/dkg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dkg.js","sourceRoot":"","sources":["../../src/dkg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAEL,mBAAmB,EACnB,cAAc,EAEd,aAAa,GACd,MAAM,kBAAkB,CAAC;AAW1B,MAAM,OAAO,SAAS;IAEF;IACA;IACA;IACA;IACA;IALlB,YACkB,EAAU,EACV,YAA0B,EAC1B,SAAiB,EACjB,SAAiB,EACjB,KAAqB;QAJrB,OAAE,GAAF,EAAE,CAAQ;QACV,iBAAY,GAAZ,YAAY,CAAc;QAC1B,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAQ;QACjB,UAAK,GAAL,KAAK,CAAgB;IACpC,CAAC;IAEG,KAAK;QACV,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,EACpB,EAAE,EACF,YAAY,EACZ,SAAS,EACT,SAAS,EACT,KAAK,GACS;QACd,OAAO,IAAI,SAAS,CAClB,EAAE,EACF,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,EACpC,SAAS,EACT,SAAS,EACT,KAAK,CACN,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAAgB;QAC5B,OAAO;YACL,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5C,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YAClC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YAClC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;SAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACb,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAClC,QAAmC,EACnC,MAAqB,EACrB,MAAc,EACd,OAA0B,EAC1B,SAAiB,EACjB,QAAsB,EACtB,gBAAwB,EACxB,YAAY,GAAG,KAAK;QAEpB,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CACzD,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"dkg.js","sourceRoot":"","sources":["../../src/dkg.ts"],"names":[],"mappings":"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"}
|
package/dist/es/taco.d.ts
CHANGED
|
@@ -1,9 +1,78 @@
|
|
|
1
1
|
import { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
|
|
2
2
|
import { ChecksumAddress, Domain } from '@nucypher/shared';
|
|
3
3
|
import { ethers } from 'ethers';
|
|
4
|
-
import { Condition
|
|
4
|
+
import { Condition } from './conditions/condition';
|
|
5
|
+
import { CustomContextParam } from './conditions/context';
|
|
6
|
+
/**
|
|
7
|
+
* Encrypts a message under given conditions using a public key from an active DKG ritual.
|
|
8
|
+
*
|
|
9
|
+
* @export
|
|
10
|
+
* @param {ethers.providers.Provider} provider - Instance of ethers provider which is used to interact with
|
|
11
|
+
* your selected network.
|
|
12
|
+
* @param {Domain} domain - Represents the logical network in which the encryption will be performed.
|
|
13
|
+
* Must match the `ritualId`.
|
|
14
|
+
* @param {Uint8Array | string} message - The message to be encrypted.
|
|
15
|
+
* @param {Condition} condition - Condition under which the message will be encrypted. Those conditions must be
|
|
16
|
+
* satisfied in order to decrypt the message.
|
|
17
|
+
* @param {number} ritualId - The ID of the DKG Ritual to be used for encryption. The message will be encrypted
|
|
18
|
+
* under the public key of this ritual.
|
|
19
|
+
* @param {ethers.Signer} authSigner - The signer that will be used to sign the encrypter authorization.
|
|
20
|
+
*
|
|
21
|
+
* @returns {Promise<ThresholdMessageKit>} Returns Promise that resolves with an instance of ThresholdMessageKit.
|
|
22
|
+
* It represents the encrypted message.
|
|
23
|
+
*
|
|
24
|
+
* @throws {Error} If the active DKG Ritual cannot be retrieved an error is thrown.
|
|
25
|
+
*/
|
|
5
26
|
export declare const encrypt: (provider: ethers.providers.Provider, domain: Domain, message: Uint8Array | string, condition: Condition, ritualId: number, authSigner: ethers.Signer) => Promise<ThresholdMessageKit>;
|
|
27
|
+
/**
|
|
28
|
+
* Encrypts a message with the given DKG public key under a specified condition.
|
|
29
|
+
*
|
|
30
|
+
* @export
|
|
31
|
+
* @param {Uint8Array | string} message - The message to be encrypted.
|
|
32
|
+
* @param {Condition} condition - Condition under which the message will be encrypted. Those conditions must be
|
|
33
|
+
* satisfied in order to decrypt the message.
|
|
34
|
+
* @param {DkgPublicKey} dkgPublicKey - The public key of an active DKG Ritual to be used for encryption
|
|
35
|
+
* @param {ethers.Signer} authSigner - The signer that will be used to sign the encrypter authorization.
|
|
36
|
+
*
|
|
37
|
+
* @returns {Promise<ThresholdMessageKit>} Returns Promise that resolves with an instance of ThresholdMessageKit.
|
|
38
|
+
* It represents the encrypted message.
|
|
39
|
+
*
|
|
40
|
+
* @throws {Error} If the encryption process throws an error, an error is thrown.
|
|
41
|
+
*/
|
|
6
42
|
export declare const encryptWithPublicKey: (message: Uint8Array | string, condition: Condition, dkgPublicKey: DkgPublicKey, authSigner: ethers.Signer) => Promise<ThresholdMessageKit>;
|
|
43
|
+
/**
|
|
44
|
+
* Decrypts an encrypted message.
|
|
45
|
+
*
|
|
46
|
+
* @export
|
|
47
|
+
* @param {ethers.providers.Provider} provider - Instance of ethers provider which is used to interact with
|
|
48
|
+
* your selected network.
|
|
49
|
+
* @param {Domain} domain - Represents the logical network in which the decryption will be performed.
|
|
50
|
+
* Must match the `ritualId`.
|
|
51
|
+
* @param {ThresholdMessageKit} messageKit - The kit containing the message to be decrypted
|
|
52
|
+
* @param {string} [porterUri] - The URI for the Porter service. If not provided, a value will be obtained
|
|
53
|
+
* from the Domain
|
|
54
|
+
* @param {ethers.Signer} [signer] - An optional signer for the decryption
|
|
55
|
+
* @param {Record<string, CustomContextParam>} [customParameters] - Optional custom parameters that may be required
|
|
56
|
+
* depending on the condition used
|
|
57
|
+
*
|
|
58
|
+
* @returns {Promise<Uint8Array>} Returns Promise that resolves with a decrypted message
|
|
59
|
+
*
|
|
60
|
+
* @throws {Error} If the active DKG Ritual cannot be retrieved or decryption process throws an error,
|
|
61
|
+
* an error is thrown.
|
|
62
|
+
*/
|
|
7
63
|
export declare const decrypt: (provider: ethers.providers.Provider, domain: Domain, messageKit: ThresholdMessageKit, porterUri?: string, signer?: ethers.Signer, customParameters?: Record<string, CustomContextParam>) => Promise<Uint8Array>;
|
|
64
|
+
/**
|
|
65
|
+
* Checks if the encryption from the provided messageKit is authorized for the specified ritual.
|
|
66
|
+
*
|
|
67
|
+
* @export
|
|
68
|
+
* @param {ethers.providers.Provider} provider - Instance of ethers provider which is used to interact with
|
|
69
|
+
* your selected network.
|
|
70
|
+
* @param {Domain} domain - The domain which was used to encrypt the network. Must match the `ritualId`.
|
|
71
|
+
* @param {ThresholdMessageKit} messageKit - The encrypted message kit to be checked.
|
|
72
|
+
* @param {number} ritualId - The ID of the DKG Ritual under which the messageKit was supposedly encrypted.
|
|
73
|
+
*
|
|
74
|
+
* @returns {Promise<boolean>} Returns a Promise that resolves with the authorization status.
|
|
75
|
+
* True if authorized, false otherwise
|
|
76
|
+
*/
|
|
8
77
|
export declare const isAuthorized: (provider: ethers.providers.Provider, domain: Domain, messageKit: ThresholdMessageKit, ritualId: number) => Promise<boolean>;
|
|
9
78
|
export declare const registerEncrypters: (provider: ethers.providers.Provider, signer: ethers.Signer, domain: Domain, ritualId: number, encrypters: ChecksumAddress[]) => Promise<void>;
|