@nucypher/taco 0.1.0-rc.3 → 0.1.0-rc.4
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/condition-expr.js +5 -3
- package/dist/cjs/conditions/condition-expr.js.map +1 -1
- package/dist/cjs/conditions/condition.js +5 -3
- package/dist/cjs/conditions/condition.js.map +1 -1
- package/dist/cjs/conditions/context/context.d.ts +3 -2
- package/dist/cjs/conditions/context/context.js +46 -28
- package/dist/cjs/conditions/context/context.js.map +1 -1
- package/dist/cjs/conditions/predefined/erc721.js.map +1 -1
- package/dist/cjs/tdec.js +0 -1
- package/dist/cjs/tdec.js.map +1 -1
- package/dist/es/conditions/condition-expr.js +5 -3
- package/dist/es/conditions/condition-expr.js.map +1 -1
- package/dist/es/conditions/condition.js +5 -3
- package/dist/es/conditions/condition.js.map +1 -1
- package/dist/es/conditions/context/context.d.ts +3 -2
- package/dist/es/conditions/context/context.js +46 -28
- package/dist/es/conditions/context/context.js.map +1 -1
- package/dist/es/conditions/predefined/erc721.js.map +1 -1
- package/dist/es/tdec.js +0 -1
- 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 +2 -2
|
@@ -6,6 +6,8 @@ const shared_1 = require("@nucypher/shared");
|
|
|
6
6
|
const semver_1 = require("semver");
|
|
7
7
|
const condition_1 = require("./condition");
|
|
8
8
|
const context_1 = require("./context");
|
|
9
|
+
const ERR_VERSION = (provided, current) => `Version provided, ${provided}, is incompatible with current version, ${current}`;
|
|
10
|
+
const ERR_CONDITION = (condition) => `Invalid condition: unrecognized condition data ${JSON.stringify(condition)}`;
|
|
9
11
|
class ConditionExpression {
|
|
10
12
|
condition;
|
|
11
13
|
version;
|
|
@@ -25,10 +27,10 @@ class ConditionExpression {
|
|
|
25
27
|
const receivedVersion = new semver_1.SemVer(obj.version);
|
|
26
28
|
const currentVersion = new semver_1.SemVer(ConditionExpression.version);
|
|
27
29
|
if (receivedVersion.major > currentVersion.major) {
|
|
28
|
-
throw new Error(
|
|
30
|
+
throw new Error(ERR_VERSION(obj.version, ConditionExpression.version));
|
|
29
31
|
}
|
|
30
32
|
if (!obj.condition) {
|
|
31
|
-
throw new Error(
|
|
33
|
+
throw new Error(ERR_CONDITION(obj.condition));
|
|
32
34
|
}
|
|
33
35
|
const condition = condition_1.Condition.fromObj(obj.condition);
|
|
34
36
|
return new ConditionExpression(condition, obj.version);
|
|
@@ -46,7 +48,7 @@ class ConditionExpression {
|
|
|
46
48
|
return ConditionExpression.fromJSON(conditions.toString());
|
|
47
49
|
}
|
|
48
50
|
buildContext(provider, customParameters = {}, signer) {
|
|
49
|
-
return new context_1.ConditionContext(provider,
|
|
51
|
+
return new context_1.ConditionContext(provider, this.condition, customParameters, signer);
|
|
50
52
|
}
|
|
51
53
|
contextRequiresSigner() {
|
|
52
54
|
return this.condition.requiresSigner();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-expr.js","sourceRoot":"","sources":["../../../src/conditions/condition-expr.ts"],"names":[],"mappings":";;;AAAA,2DAAuE;AACvE,6CAA0C;AAE1C,mCAAgC;AAEhC,2CAAwC;AACxC,uCAAiE;
|
|
1
|
+
{"version":3,"file":"condition-expr.js","sourceRoot":"","sources":["../../../src/conditions/condition-expr.ts"],"names":[],"mappings":";;;AAAA,2DAAuE;AACvE,6CAA0C;AAE1C,mCAAgC;AAEhC,2CAAwC;AACxC,uCAAiE;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,CAC9D,SAAS,CACV,EAAE,CAAC;AAON,MAAa,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,eAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,IAAI,eAAM,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,qBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM;QACX,OAAO,IAAA,eAAM,EAAC,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,0BAAc,CAAC,IAAA,eAAM,EAAC,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,0BAAgB,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;;AArEH,kDAsEC"}
|
|
@@ -5,6 +5,8 @@ const shared_1 = require("@nucypher/shared");
|
|
|
5
5
|
const base_1 = require("./base");
|
|
6
6
|
const compound_condition_1 = require("./compound-condition");
|
|
7
7
|
const const_1 = require("./const");
|
|
8
|
+
const ERR_INVALID_CONDITION = (error) => `Invalid condition: ${JSON.stringify(error.issues)}`;
|
|
9
|
+
const ERR_INVALID_CONDITION_TYPE = (type) => `Invalid condition type: ${type}`;
|
|
8
10
|
class ConditionFactory {
|
|
9
11
|
static conditionFromProps(obj) {
|
|
10
12
|
switch (obj.conditionType) {
|
|
@@ -17,7 +19,7 @@ class ConditionFactory {
|
|
|
17
19
|
case compound_condition_1.CompoundConditionType:
|
|
18
20
|
return new base_1.CompoundCondition(obj);
|
|
19
21
|
default:
|
|
20
|
-
throw new Error(
|
|
22
|
+
throw new Error(ERR_INVALID_CONDITION_TYPE(obj.conditionType));
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
25
|
}
|
|
@@ -29,7 +31,7 @@ class Condition {
|
|
|
29
31
|
this.value = value;
|
|
30
32
|
const { data, error } = Condition.validate(schema, value);
|
|
31
33
|
if (error) {
|
|
32
|
-
throw new Error(
|
|
34
|
+
throw new Error(ERR_INVALID_CONDITION(error));
|
|
33
35
|
}
|
|
34
36
|
this.value = data;
|
|
35
37
|
}
|
|
@@ -46,7 +48,7 @@ class Condition {
|
|
|
46
48
|
toObj() {
|
|
47
49
|
const { data, error } = Condition.validate(this.schema, this.value);
|
|
48
50
|
if (error) {
|
|
49
|
-
throw new Error(
|
|
51
|
+
throw new Error(ERR_INVALID_CONDITION(error));
|
|
50
52
|
}
|
|
51
53
|
return data;
|
|
52
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAGhD,iCAWgB;AAChB,6DAG8B;AAC9B,mCAA6C;AAK7C,MAAM,gBAAgB;IACb,MAAM,CAAC,kBAAkB,CAAC,GAAmB;QAClD,QAAQ,GAAG,CAAC,aAAa,EAAE;YACzB,KAAK,uBAAgB;gBACnB,OAAO,IAAI,mBAAY,CAAC,GAAwB,CAAC,CAAC;YACpD,KAAK,wBAAiB;gBACpB,OAAO,IAAI,oBAAa,CAAC,GAAyB,CAAC,CAAC;YACtD,KAAK,4BAAqB;gBACxB,OAAO,IAAI,wBAAiB,CAAC,GAA6B,CAAC,CAAC;YAC9D,KAAK,0CAAqB;gBACxB,OAAO,IAAI,wBAAiB,CAAC,GAA6B,CAAC,CAAC;YAC9D;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAGhD,iCAWgB;AAChB,6DAG8B;AAC9B,mCAA6C;AAK7C,MAAM,qBAAqB,GAAG,CAAC,KAAiB,EAAE,EAAE,CAClD,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AACvD,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,2BAA2B,IAAI,EAAE,CAAC;AAEpC,MAAM,gBAAgB;IACb,MAAM,CAAC,kBAAkB,CAAC,GAAmB;QAClD,QAAQ,GAAG,CAAC,aAAa,EAAE;YACzB,KAAK,uBAAgB;gBACnB,OAAO,IAAI,mBAAY,CAAC,GAAwB,CAAC,CAAC;YACpD,KAAK,wBAAiB;gBACpB,OAAO,IAAI,oBAAa,CAAC,GAAyB,CAAC,CAAC;YACtD,KAAK,4BAAqB;gBACxB,OAAO,IAAI,wBAAiB,CAAC,GAA6B,CAAC,CAAC;YAC9D,KAAK,0CAAqB;gBACxB,OAAO,IAAI,wBAAiB,CAAC,GAA6B,CAAC,CAAC;YAC9D;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;SAClE;IACH,CAAC;CACF;AAED,MAAa,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,0BAAkB,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,OAAO,CAAC,GAAmB;QACvC,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,KAAgB;QAC5B,OAAO,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AA7CD,8BA6CC"}
|
|
@@ -8,14 +8,15 @@ export declare const RESERVED_CONTEXT_PARAMS: string[];
|
|
|
8
8
|
export declare const CONTEXT_PARAM_PREFIX = ":";
|
|
9
9
|
export declare class ConditionContext {
|
|
10
10
|
private readonly provider;
|
|
11
|
-
private readonly
|
|
11
|
+
private readonly condition;
|
|
12
12
|
readonly customParameters: Record<string, CustomContextParam>;
|
|
13
13
|
private readonly signer?;
|
|
14
14
|
private readonly walletAuthProvider?;
|
|
15
|
-
constructor(provider: ethers.providers.Provider,
|
|
15
|
+
constructor(provider: ethers.providers.Provider, condition: Condition, customParameters?: Record<string, CustomContextParam>, signer?: ethers.Signer | undefined);
|
|
16
16
|
private validate;
|
|
17
17
|
toObj: () => Promise<Record<string, ContextParam>>;
|
|
18
18
|
private fillContextParameters;
|
|
19
|
+
private isContextParameter;
|
|
19
20
|
private findRequestedParameters;
|
|
20
21
|
toJson(): Promise<string>;
|
|
21
22
|
withCustomParams(params: Record<string, CustomContextParam>): ConditionContext;
|
|
@@ -3,20 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConditionContext = exports.CONTEXT_PARAM_PREFIX = exports.RESERVED_CONTEXT_PARAMS = void 0;
|
|
4
4
|
const nucypher_core_1 = require("@nucypher/nucypher-core");
|
|
5
5
|
const shared_1 = require("@nucypher/shared");
|
|
6
|
+
const compound_condition_1 = require("../compound-condition");
|
|
6
7
|
const condition_expr_1 = require("../condition-expr");
|
|
7
8
|
const const_1 = require("../const");
|
|
8
9
|
const providers_1 = require("./providers");
|
|
9
10
|
exports.RESERVED_CONTEXT_PARAMS = [const_1.USER_ADDRESS_PARAM];
|
|
10
11
|
exports.CONTEXT_PARAM_PREFIX = ':';
|
|
12
|
+
const ERR_RESERVED_PARAM = (key) => `Cannot use reserved parameter name ${key} as custom parameter`;
|
|
13
|
+
const ERR_INVALID_CUSTOM_PARAM = (key) => `Custom parameter ${key} must start with ${exports.CONTEXT_PARAM_PREFIX}`;
|
|
14
|
+
const ERR_SIGNER_REQUIRED = `Signer required to satisfy ${const_1.USER_ADDRESS_PARAM} context variable in condition`;
|
|
15
|
+
const ERR_MISSING_CONTEXT_PARAMS = (params) => `Missing custom context parameter(s): ${params.join(', ')}`;
|
|
16
|
+
const ERR_UNKNOWN_CONTEXT_PARAMS = (params) => `Unknown custom context parameter(s): ${params.join(', ')}`;
|
|
11
17
|
class ConditionContext {
|
|
12
18
|
provider;
|
|
13
|
-
|
|
19
|
+
condition;
|
|
14
20
|
customParameters;
|
|
15
21
|
signer;
|
|
16
22
|
walletAuthProvider;
|
|
17
|
-
constructor(provider,
|
|
23
|
+
constructor(provider, condition, customParameters = {}, signer) {
|
|
18
24
|
this.provider = provider;
|
|
19
|
-
this.
|
|
25
|
+
this.condition = condition;
|
|
20
26
|
this.customParameters = customParameters;
|
|
21
27
|
this.signer = signer;
|
|
22
28
|
if (this.signer) {
|
|
@@ -27,26 +33,31 @@ class ConditionContext {
|
|
|
27
33
|
validate() {
|
|
28
34
|
Object.keys(this.customParameters).forEach((key) => {
|
|
29
35
|
if (exports.RESERVED_CONTEXT_PARAMS.includes(key)) {
|
|
30
|
-
throw new Error(
|
|
36
|
+
throw new Error(ERR_RESERVED_PARAM(key));
|
|
31
37
|
}
|
|
32
38
|
if (!key.startsWith(exports.CONTEXT_PARAM_PREFIX)) {
|
|
33
|
-
throw new Error(
|
|
39
|
+
throw new Error(ERR_INVALID_CUSTOM_PARAM(key));
|
|
34
40
|
}
|
|
35
41
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
throw new Error(`Signer required to satisfy ${const_1.USER_ADDRESS_PARAM} context variable in condition`);
|
|
42
|
+
if (this.condition.requiresSigner() && !this.signer) {
|
|
43
|
+
throw new Error(ERR_SIGNER_REQUIRED);
|
|
39
44
|
}
|
|
40
|
-
return this;
|
|
41
45
|
}
|
|
42
46
|
toObj = async () => {
|
|
43
|
-
const
|
|
47
|
+
const condObject = this.condition.toObj();
|
|
48
|
+
const parsedCondObject = (0, shared_1.fromJSON)(new nucypher_core_1.Conditions((0, shared_1.toJSON)(condObject)).toString());
|
|
49
|
+
const requestedParameters = this.findRequestedParameters(parsedCondObject);
|
|
44
50
|
const parameters = await this.fillContextParameters(requestedParameters);
|
|
45
51
|
// Ok, so at this point we should have all the parameters we need
|
|
46
52
|
// If we don't, we have a problem and we should throw
|
|
47
53
|
const missingParameters = Array.from(requestedParameters).filter((key) => !parameters[key]);
|
|
48
54
|
if (missingParameters.length > 0) {
|
|
49
|
-
throw new Error(
|
|
55
|
+
throw new Error(ERR_MISSING_CONTEXT_PARAMS(missingParameters));
|
|
56
|
+
}
|
|
57
|
+
// We may also have some parameters that are not used
|
|
58
|
+
const unknownParameters = Object.keys(parameters).filter((key) => !requestedParameters.has(key) && !exports.RESERVED_CONTEXT_PARAMS.includes(key));
|
|
59
|
+
if (unknownParameters.length > 0) {
|
|
60
|
+
throw new Error(ERR_UNKNOWN_CONTEXT_PARAMS(unknownParameters));
|
|
50
61
|
}
|
|
51
62
|
return parameters;
|
|
52
63
|
};
|
|
@@ -56,7 +67,7 @@ class ConditionContext {
|
|
|
56
67
|
// Fill in predefined context parameters
|
|
57
68
|
if (requestedParameters.has(const_1.USER_ADDRESS_PARAM)) {
|
|
58
69
|
if (!this.walletAuthProvider) {
|
|
59
|
-
throw new Error(
|
|
70
|
+
throw new Error(ERR_SIGNER_REQUIRED);
|
|
60
71
|
}
|
|
61
72
|
parameters[const_1.USER_ADDRESS_PARAM] =
|
|
62
73
|
await this.walletAuthProvider.getOrCreateWalletSignature();
|
|
@@ -69,22 +80,31 @@ class ConditionContext {
|
|
|
69
80
|
}
|
|
70
81
|
return parameters;
|
|
71
82
|
}
|
|
72
|
-
|
|
83
|
+
isContextParameter(param) {
|
|
84
|
+
return typeof param === 'string' && param.startsWith(exports.CONTEXT_PARAM_PREFIX);
|
|
85
|
+
}
|
|
86
|
+
findRequestedParameters(condition) {
|
|
73
87
|
// First, we want to find all the parameters we need to add
|
|
74
88
|
const requestedParameters = new Set();
|
|
75
89
|
// Search conditions for parameters
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const rvt = cond.returnValueTest.value;
|
|
81
|
-
if (typeof rvt === 'string' && rvt.startsWith(exports.CONTEXT_PARAM_PREFIX)) {
|
|
90
|
+
// Check return value test
|
|
91
|
+
if (condition.returnValueTest) {
|
|
92
|
+
const rvt = condition.returnValueTest.value;
|
|
93
|
+
if (this.isContextParameter(rvt)) {
|
|
82
94
|
requestedParameters.add(rvt);
|
|
83
95
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
96
|
+
}
|
|
97
|
+
// Check condition parameters
|
|
98
|
+
for (const param of condition.parameters ?? []) {
|
|
99
|
+
if (this.isContextParameter(param)) {
|
|
100
|
+
requestedParameters.add(param);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// If it's a compound condition, check operands
|
|
104
|
+
if (condition.conditionType === compound_condition_1.CompoundConditionType) {
|
|
105
|
+
for (const key in condition.operands) {
|
|
106
|
+
const innerParams = this.findRequestedParameters(condition.operands[key]);
|
|
107
|
+
for (const param of innerParams) {
|
|
88
108
|
requestedParameters.add(param);
|
|
89
109
|
}
|
|
90
110
|
}
|
|
@@ -96,17 +116,15 @@ class ConditionContext {
|
|
|
96
116
|
return (0, shared_1.toJSON)(parameters);
|
|
97
117
|
}
|
|
98
118
|
withCustomParams(params) {
|
|
99
|
-
return new ConditionContext(this.provider, this.
|
|
119
|
+
return new ConditionContext(this.provider, this.condition, params, this.signer);
|
|
100
120
|
}
|
|
101
121
|
async toWASMContext() {
|
|
102
122
|
const asJson = await this.toJson();
|
|
103
123
|
return new nucypher_core_1.Context(asJson);
|
|
104
124
|
}
|
|
105
125
|
static fromConditions(provider, conditions, signer, customParameters) {
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
];
|
|
109
|
-
return new ConditionContext(provider, innerConditions, customParameters, signer);
|
|
126
|
+
const innerCondition = condition_expr_1.ConditionExpression.fromWASMConditions(conditions).condition;
|
|
127
|
+
return new ConditionContext(provider, innerCondition, customParameters, signer);
|
|
110
128
|
}
|
|
111
129
|
}
|
|
112
130
|
exports.ConditionContext = ConditionContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/conditions/context/context.ts"],"names":[],"mappings":";;;AAAA,2DAAgF;AAChF,6CAAoD;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/conditions/context/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc721.js","sourceRoot":"","sources":["../../../../src/conditions/predefined/erc721.ts"],"names":[],"mappings":";;;AAAA,kCAIiB;AACjB,oCAA8C;
|
|
1
|
+
{"version":3,"file":"erc721.js","sourceRoot":"","sources":["../../../../src/conditions/predefined/erc721.ts"],"names":[],"mappings":";;;AAAA,kCAIiB;AACjB,oCAA8C;AAI9C,MAAM,uBAAuB,GAGzB;IACF,aAAa,EAAE,4BAAqB;IACpC,MAAM,EAAE,SAAS;IACjB,oBAAoB,EAAE,QAAQ;IAC9B,eAAe,EAAE;QACf,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,0BAAkB;KAC1B;CACF,CAAC;AAEF,MAAa,eAAgB,SAAQ,wBAAiB;IACpD,YAAY,KAA0D;QACpE,KAAK,CAAC,EAAE,GAAG,uBAAuB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAJD,0CAIC;AAID,MAAM,qBAAqB,GACzB;IACE,aAAa,EAAE,4BAAqB;IACpC,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,CAAC,0BAAkB,CAAC;IAChC,oBAAoB,EAAE,QAAQ;IAC9B,eAAe,EAAE;QACf,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,GAAG;QACf,KAAK,EAAE,GAAG;KACX;CACF,CAAC;AAEJ,MAAa,aAAc,SAAQ,wBAAiB;IAClD,YAAY,KAAwD;QAClE,KAAK,CAAC,EAAE,GAAG,qBAAqB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;CACF;AAJD,sCAIC"}
|
package/dist/cjs/tdec.js
CHANGED
|
@@ -56,6 +56,5 @@ const makeDecryptionRequests = async (ritualId, wasmContext, dkgParticipants, th
|
|
|
56
56
|
return { sharedSecrets, encryptedRequests };
|
|
57
57
|
};
|
|
58
58
|
// Moving to a separate function to make it easier to mock
|
|
59
|
-
// TODO: Reconsider this
|
|
60
59
|
const makeSessionKey = () => nucypher_core_1.SessionStaticSecret.random();
|
|
61
60
|
//# sourceMappingURL=tdec.js.map
|
package/dist/cjs/tdec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tdec.js","sourceRoot":"","sources":["../../src/tdec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tdec.js","sourceRoot":"","sources":["../../src/tdec.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import { toJSON } from '@nucypher/shared';
|
|
|
3
3
|
import { SemVer } from 'semver';
|
|
4
4
|
import { Condition } from './condition';
|
|
5
5
|
import { ConditionContext } from './context';
|
|
6
|
+
const ERR_VERSION = (provided, current) => `Version provided, ${provided}, is incompatible with current version, ${current}`;
|
|
7
|
+
const ERR_CONDITION = (condition) => `Invalid condition: unrecognized condition data ${JSON.stringify(condition)}`;
|
|
6
8
|
export class ConditionExpression {
|
|
7
9
|
condition;
|
|
8
10
|
version;
|
|
@@ -22,10 +24,10 @@ export class ConditionExpression {
|
|
|
22
24
|
const receivedVersion = new SemVer(obj.version);
|
|
23
25
|
const currentVersion = new SemVer(ConditionExpression.version);
|
|
24
26
|
if (receivedVersion.major > currentVersion.major) {
|
|
25
|
-
throw new Error(
|
|
27
|
+
throw new Error(ERR_VERSION(obj.version, ConditionExpression.version));
|
|
26
28
|
}
|
|
27
29
|
if (!obj.condition) {
|
|
28
|
-
throw new Error(
|
|
30
|
+
throw new Error(ERR_CONDITION(obj.condition));
|
|
29
31
|
}
|
|
30
32
|
const condition = Condition.fromObj(obj.condition);
|
|
31
33
|
return new ConditionExpression(condition, obj.version);
|
|
@@ -43,7 +45,7 @@ export class ConditionExpression {
|
|
|
43
45
|
return ConditionExpression.fromJSON(conditions.toString());
|
|
44
46
|
}
|
|
45
47
|
buildContext(provider, customParameters = {}, signer) {
|
|
46
|
-
return new ConditionContext(provider,
|
|
48
|
+
return new ConditionContext(provider, this.condition, customParameters, signer);
|
|
47
49
|
}
|
|
48
50
|
contextRequiresSigner() {
|
|
49
51
|
return this.condition.requiresSigner();
|
|
@@ -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;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAsB,MAAM,WAAW,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;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,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,CAC9D,SAAS,CACV,EAAE,CAAC;AAON,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,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,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"}
|
|
@@ -2,6 +2,8 @@ import { objectEquals } from '@nucypher/shared';
|
|
|
2
2
|
import { CompoundCondition, ContractCondition, ContractConditionType, RpcCondition, RpcConditionType, TimeCondition, TimeConditionType, } from './base';
|
|
3
3
|
import { CompoundConditionType, } from './compound-condition';
|
|
4
4
|
import { USER_ADDRESS_PARAM } from './const';
|
|
5
|
+
const ERR_INVALID_CONDITION = (error) => `Invalid condition: ${JSON.stringify(error.issues)}`;
|
|
6
|
+
const ERR_INVALID_CONDITION_TYPE = (type) => `Invalid condition type: ${type}`;
|
|
5
7
|
class ConditionFactory {
|
|
6
8
|
static conditionFromProps(obj) {
|
|
7
9
|
switch (obj.conditionType) {
|
|
@@ -14,7 +16,7 @@ class ConditionFactory {
|
|
|
14
16
|
case CompoundConditionType:
|
|
15
17
|
return new CompoundCondition(obj);
|
|
16
18
|
default:
|
|
17
|
-
throw new Error(
|
|
19
|
+
throw new Error(ERR_INVALID_CONDITION_TYPE(obj.conditionType));
|
|
18
20
|
}
|
|
19
21
|
}
|
|
20
22
|
}
|
|
@@ -26,7 +28,7 @@ export class Condition {
|
|
|
26
28
|
this.value = value;
|
|
27
29
|
const { data, error } = Condition.validate(schema, value);
|
|
28
30
|
if (error) {
|
|
29
|
-
throw new Error(
|
|
31
|
+
throw new Error(ERR_INVALID_CONDITION(error));
|
|
30
32
|
}
|
|
31
33
|
this.value = data;
|
|
32
34
|
}
|
|
@@ -43,7 +45,7 @@ export class Condition {
|
|
|
43
45
|
toObj() {
|
|
44
46
|
const { data, error } = Condition.validate(this.schema, this.value);
|
|
45
47
|
if (error) {
|
|
46
|
-
throw new Error(
|
|
48
|
+
throw new Error(ERR_INVALID_CONDITION(error));
|
|
47
49
|
}
|
|
48
50
|
return data;
|
|
49
51
|
}
|
|
@@ -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,EACL,iBAAiB,EACjB,iBAAiB,EAEjB,qBAAqB,EACrB,YAAY,EAEZ,gBAAgB,EAChB,aAAa,EAEb,iBAAiB,GAClB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAEL,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAK7C,MAAM,gBAAgB;IACb,MAAM,CAAC,kBAAkB,CAAC,GAAmB;QAClD,QAAQ,GAAG,CAAC,aAAa,EAAE;YACzB,KAAK,gBAAgB;gBACnB,OAAO,IAAI,YAAY,CAAC,GAAwB,CAAC,CAAC;YACpD,KAAK,iBAAiB;gBACpB,OAAO,IAAI,aAAa,CAAC,GAAyB,CAAC,CAAC;YACtD,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,GAA6B,CAAC,CAAC;YAC9D,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,GAA6B,CAAC,CAAC;YAC9D;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAEjB,qBAAqB,EACrB,YAAY,EAEZ,gBAAgB,EAChB,aAAa,EAEb,iBAAiB,GAClB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAEL,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,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;AACvD,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,2BAA2B,IAAI,EAAE,CAAC;AAEpC,MAAM,gBAAgB;IACb,MAAM,CAAC,kBAAkB,CAAC,GAAmB;QAClD,QAAQ,GAAG,CAAC,aAAa,EAAE;YACzB,KAAK,gBAAgB;gBACnB,OAAO,IAAI,YAAY,CAAC,GAAwB,CAAC,CAAC;YACpD,KAAK,iBAAiB;gBACpB,OAAO,IAAI,aAAa,CAAC,GAAyB,CAAC,CAAC;YACtD,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,GAA6B,CAAC,CAAC;YAC9D,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,GAA6B,CAAC,CAAC;YAC9D;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;SAClE;IACH,CAAC;CACF;AAED,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,OAAO,CAAC,GAAmB;QACvC,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,KAAgB;QAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;CACF"}
|
|
@@ -8,14 +8,15 @@ export declare const RESERVED_CONTEXT_PARAMS: string[];
|
|
|
8
8
|
export declare const CONTEXT_PARAM_PREFIX = ":";
|
|
9
9
|
export declare class ConditionContext {
|
|
10
10
|
private readonly provider;
|
|
11
|
-
private readonly
|
|
11
|
+
private readonly condition;
|
|
12
12
|
readonly customParameters: Record<string, CustomContextParam>;
|
|
13
13
|
private readonly signer?;
|
|
14
14
|
private readonly walletAuthProvider?;
|
|
15
|
-
constructor(provider: ethers.providers.Provider,
|
|
15
|
+
constructor(provider: ethers.providers.Provider, condition: Condition, customParameters?: Record<string, CustomContextParam>, signer?: ethers.Signer | undefined);
|
|
16
16
|
private validate;
|
|
17
17
|
toObj: () => Promise<Record<string, ContextParam>>;
|
|
18
18
|
private fillContextParameters;
|
|
19
|
+
private isContextParameter;
|
|
19
20
|
private findRequestedParameters;
|
|
20
21
|
toJson(): Promise<string>;
|
|
21
22
|
withCustomParams(params: Record<string, CustomContextParam>): ConditionContext;
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { Context, Conditions as WASMConditions } from '@nucypher/nucypher-core';
|
|
2
2
|
import { fromJSON, toJSON } from '@nucypher/shared';
|
|
3
|
+
import { CompoundConditionType } from '../compound-condition';
|
|
3
4
|
import { ConditionExpression } from '../condition-expr';
|
|
4
5
|
import { USER_ADDRESS_PARAM } from '../const';
|
|
5
6
|
import { WalletAuthenticationProvider } from './providers';
|
|
6
7
|
export const RESERVED_CONTEXT_PARAMS = [USER_ADDRESS_PARAM];
|
|
7
8
|
export const CONTEXT_PARAM_PREFIX = ':';
|
|
9
|
+
const ERR_RESERVED_PARAM = (key) => `Cannot use reserved parameter name ${key} as custom parameter`;
|
|
10
|
+
const ERR_INVALID_CUSTOM_PARAM = (key) => `Custom parameter ${key} must start with ${CONTEXT_PARAM_PREFIX}`;
|
|
11
|
+
const ERR_SIGNER_REQUIRED = `Signer required to satisfy ${USER_ADDRESS_PARAM} context variable in condition`;
|
|
12
|
+
const ERR_MISSING_CONTEXT_PARAMS = (params) => `Missing custom context parameter(s): ${params.join(', ')}`;
|
|
13
|
+
const ERR_UNKNOWN_CONTEXT_PARAMS = (params) => `Unknown custom context parameter(s): ${params.join(', ')}`;
|
|
8
14
|
export class ConditionContext {
|
|
9
15
|
provider;
|
|
10
|
-
|
|
16
|
+
condition;
|
|
11
17
|
customParameters;
|
|
12
18
|
signer;
|
|
13
19
|
walletAuthProvider;
|
|
14
|
-
constructor(provider,
|
|
20
|
+
constructor(provider, condition, customParameters = {}, signer) {
|
|
15
21
|
this.provider = provider;
|
|
16
|
-
this.
|
|
22
|
+
this.condition = condition;
|
|
17
23
|
this.customParameters = customParameters;
|
|
18
24
|
this.signer = signer;
|
|
19
25
|
if (this.signer) {
|
|
@@ -24,26 +30,31 @@ export class ConditionContext {
|
|
|
24
30
|
validate() {
|
|
25
31
|
Object.keys(this.customParameters).forEach((key) => {
|
|
26
32
|
if (RESERVED_CONTEXT_PARAMS.includes(key)) {
|
|
27
|
-
throw new Error(
|
|
33
|
+
throw new Error(ERR_RESERVED_PARAM(key));
|
|
28
34
|
}
|
|
29
35
|
if (!key.startsWith(CONTEXT_PARAM_PREFIX)) {
|
|
30
|
-
throw new Error(
|
|
36
|
+
throw new Error(ERR_INVALID_CUSTOM_PARAM(key));
|
|
31
37
|
}
|
|
32
38
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
throw new Error(`Signer required to satisfy ${USER_ADDRESS_PARAM} context variable in condition`);
|
|
39
|
+
if (this.condition.requiresSigner() && !this.signer) {
|
|
40
|
+
throw new Error(ERR_SIGNER_REQUIRED);
|
|
36
41
|
}
|
|
37
|
-
return this;
|
|
38
42
|
}
|
|
39
43
|
toObj = async () => {
|
|
40
|
-
const
|
|
44
|
+
const condObject = this.condition.toObj();
|
|
45
|
+
const parsedCondObject = fromJSON(new WASMConditions(toJSON(condObject)).toString());
|
|
46
|
+
const requestedParameters = this.findRequestedParameters(parsedCondObject);
|
|
41
47
|
const parameters = await this.fillContextParameters(requestedParameters);
|
|
42
48
|
// Ok, so at this point we should have all the parameters we need
|
|
43
49
|
// If we don't, we have a problem and we should throw
|
|
44
50
|
const missingParameters = Array.from(requestedParameters).filter((key) => !parameters[key]);
|
|
45
51
|
if (missingParameters.length > 0) {
|
|
46
|
-
throw new Error(
|
|
52
|
+
throw new Error(ERR_MISSING_CONTEXT_PARAMS(missingParameters));
|
|
53
|
+
}
|
|
54
|
+
// We may also have some parameters that are not used
|
|
55
|
+
const unknownParameters = Object.keys(parameters).filter((key) => !requestedParameters.has(key) && !RESERVED_CONTEXT_PARAMS.includes(key));
|
|
56
|
+
if (unknownParameters.length > 0) {
|
|
57
|
+
throw new Error(ERR_UNKNOWN_CONTEXT_PARAMS(unknownParameters));
|
|
47
58
|
}
|
|
48
59
|
return parameters;
|
|
49
60
|
};
|
|
@@ -53,7 +64,7 @@ export class ConditionContext {
|
|
|
53
64
|
// Fill in predefined context parameters
|
|
54
65
|
if (requestedParameters.has(USER_ADDRESS_PARAM)) {
|
|
55
66
|
if (!this.walletAuthProvider) {
|
|
56
|
-
throw new Error(
|
|
67
|
+
throw new Error(ERR_SIGNER_REQUIRED);
|
|
57
68
|
}
|
|
58
69
|
parameters[USER_ADDRESS_PARAM] =
|
|
59
70
|
await this.walletAuthProvider.getOrCreateWalletSignature();
|
|
@@ -66,22 +77,31 @@ export class ConditionContext {
|
|
|
66
77
|
}
|
|
67
78
|
return parameters;
|
|
68
79
|
}
|
|
69
|
-
|
|
80
|
+
isContextParameter(param) {
|
|
81
|
+
return typeof param === 'string' && param.startsWith(CONTEXT_PARAM_PREFIX);
|
|
82
|
+
}
|
|
83
|
+
findRequestedParameters(condition) {
|
|
70
84
|
// First, we want to find all the parameters we need to add
|
|
71
85
|
const requestedParameters = new Set();
|
|
72
86
|
// Search conditions for parameters
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const rvt = cond.returnValueTest.value;
|
|
78
|
-
if (typeof rvt === 'string' && rvt.startsWith(CONTEXT_PARAM_PREFIX)) {
|
|
87
|
+
// Check return value test
|
|
88
|
+
if (condition.returnValueTest) {
|
|
89
|
+
const rvt = condition.returnValueTest.value;
|
|
90
|
+
if (this.isContextParameter(rvt)) {
|
|
79
91
|
requestedParameters.add(rvt);
|
|
80
92
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
93
|
+
}
|
|
94
|
+
// Check condition parameters
|
|
95
|
+
for (const param of condition.parameters ?? []) {
|
|
96
|
+
if (this.isContextParameter(param)) {
|
|
97
|
+
requestedParameters.add(param);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// If it's a compound condition, check operands
|
|
101
|
+
if (condition.conditionType === CompoundConditionType) {
|
|
102
|
+
for (const key in condition.operands) {
|
|
103
|
+
const innerParams = this.findRequestedParameters(condition.operands[key]);
|
|
104
|
+
for (const param of innerParams) {
|
|
85
105
|
requestedParameters.add(param);
|
|
86
106
|
}
|
|
87
107
|
}
|
|
@@ -93,17 +113,15 @@ export class ConditionContext {
|
|
|
93
113
|
return toJSON(parameters);
|
|
94
114
|
}
|
|
95
115
|
withCustomParams(params) {
|
|
96
|
-
return new ConditionContext(this.provider, this.
|
|
116
|
+
return new ConditionContext(this.provider, this.condition, params, this.signer);
|
|
97
117
|
}
|
|
98
118
|
async toWASMContext() {
|
|
99
119
|
const asJson = await this.toJson();
|
|
100
120
|
return new Context(asJson);
|
|
101
121
|
}
|
|
102
122
|
static fromConditions(provider, conditions, signer, customParameters) {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
];
|
|
106
|
-
return new ConditionContext(provider, innerConditions, customParameters, signer);
|
|
123
|
+
const innerCondition = ConditionExpression.fromWASMConditions(conditions).condition;
|
|
124
|
+
return new ConditionContext(provider, innerCondition, customParameters, signer);
|
|
107
125
|
}
|
|
108
126
|
}
|
|
109
127
|
//# 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;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/conditions/context/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"erc721.js","sourceRoot":"","sources":["../../../../src/conditions/predefined/erc721.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,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,KAAK,EAAE,CAAC;QACR,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;IAC9B,eAAe,EAAE;QACf,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,GAAG;QACf,KAAK,EAAE,GAAG;KACX;CACF,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"}
|
package/dist/es/tdec.js
CHANGED
|
@@ -51,6 +51,5 @@ const makeDecryptionRequests = async (ritualId, wasmContext, dkgParticipants, th
|
|
|
51
51
|
return { sharedSecrets, encryptedRequests };
|
|
52
52
|
};
|
|
53
53
|
// Moving to a separate function to make it easier to mock
|
|
54
|
-
// TODO: Reconsider this
|
|
55
54
|
const makeSessionKey = () => SessionStaticSecret.random();
|
|
56
55
|
//# sourceMappingURL=tdec.js.map
|