@nucypher/taco 0.1.0-rc.2 → 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/const.js +1 -1
- package/dist/cjs/conditions/const.js.map +1 -1
- package/dist/cjs/conditions/context/context.d.ts +4 -3
- package/dist/cjs/conditions/context/context.js +47 -29
- package/dist/cjs/conditions/context/context.js.map +1 -1
- package/dist/cjs/conditions/context/providers.js +1 -1
- package/dist/cjs/conditions/context/providers.js.map +1 -1
- package/dist/cjs/conditions/predefined/erc721.js.map +1 -1
- package/dist/cjs/dkg.d.ts +4 -4
- package/dist/cjs/dkg.js +11 -11
- package/dist/cjs/dkg.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +7 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/taco.d.ts +6 -4
- package/dist/cjs/taco.js +15 -8
- package/dist/cjs/taco.js.map +1 -1
- package/dist/cjs/tdec.d.ts +3 -2
- package/dist/cjs/tdec.js +7 -8
- 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/const.js +1 -1
- package/dist/es/conditions/const.js.map +1 -1
- package/dist/es/conditions/context/context.d.ts +4 -3
- package/dist/es/conditions/context/context.js +47 -29
- package/dist/es/conditions/context/context.js.map +1 -1
- package/dist/es/conditions/context/providers.js +1 -1
- package/dist/es/conditions/context/providers.js.map +1 -1
- package/dist/es/conditions/predefined/erc721.js.map +1 -1
- package/dist/es/dkg.d.ts +4 -4
- package/dist/es/dkg.js +11 -11
- package/dist/es/dkg.js.map +1 -1
- package/dist/es/index.d.ts +2 -2
- package/dist/es/index.js +3 -2
- package/dist/es/index.js.map +1 -1
- package/dist/es/taco.d.ts +6 -4
- package/dist/es/taco.js +14 -8
- package/dist/es/taco.js.map +1 -1
- package/dist/es/tdec.d.ts +3 -2
- package/dist/es/tdec.js +7 -8
- 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 +19 -19
- package/dist/cjs/porter.d.ts +0 -4
- package/dist/cjs/porter.js +0 -22
- package/dist/cjs/porter.js.map +0 -1
- package/dist/es/porter.d.ts +0 -4
- package/dist/es/porter.js +0 -14
- package/dist/es/porter.js.map +0 -1
|
@@ -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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/conditions/const.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAE9B,QAAA,kBAAkB,GAAG,cAAc,CAAC;AAEpC,QAAA,kBAAkB,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEvD,QAAA,mBAAmB,GAAG;IACjC,gBAAO,CAAC,OAAO;IACf,gBAAO,CAAC,MAAM;IACd,gBAAO,CAAC,MAAM;IACd,gBAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/conditions/const.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAE9B,QAAA,kBAAkB,GAAG,cAAc,CAAC;AAEpC,QAAA,kBAAkB,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEvD,QAAA,mBAAmB,GAAG;IACjC,gBAAO,CAAC,OAAO;IACf,gBAAO,CAAC,MAAM;IACd,gBAAO,CAAC,MAAM;IACd,gBAAO,CAAC,gBAAgB;CACzB,CAAC"}
|
|
@@ -8,17 +8,18 @@ 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;
|
|
22
23
|
toWASMContext(): Promise<Context>;
|
|
23
|
-
static fromConditions(provider: ethers.providers.Provider, conditions: WASMConditions, signer?: ethers.Signer): ConditionContext;
|
|
24
|
+
static fromConditions(provider: ethers.providers.Provider, conditions: WASMConditions, signer?: ethers.Signer, customParameters?: Record<string, CustomContextParam>): ConditionContext;
|
|
24
25
|
}
|
|
@@ -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
|
-
static fromConditions(provider, conditions, signer) {
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
];
|
|
109
|
-
return new ConditionContext(provider, innerConditions, {}, signer);
|
|
125
|
+
static fromConditions(provider, conditions, signer, customParameters) {
|
|
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":"providers.js","sourceRoot":"","sources":["../../../../src/conditions/context/providers.ts"],"names":[],"mappings":";;;AAEA,8CAAyD;AAgBzD,MAAa,4BAA4B;IAIpB;IACA;IAJX,eAAe,CAA0B;IAEjD,YACmB,QAAmC,EACnC,MAAqB;QADrB,aAAQ,GAAR,QAAQ,CAA2B;QACnC,WAAM,GAAN,MAAM,CAAe;IACrC,CAAC;IAEG,KAAK,CAAC,0BAA0B;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,oBAAoB,OAAO,EAAE,CAAC;QAEjD,oDAAoD;QACpD,MAAM,cAAc,GAAG,OAAO,YAAY,KAAK,WAAW,CAAC;QAC3D,IAAI,cAAc,EAAE;YAClB,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,cAAc,EAAE;gBAClB,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aACnC;SACF;QAED,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,cAAc,EAAE;YAClB,IAAI,cAAc,EAAE;gBAClB,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;aAClD;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SACnC;QAED,uEAAuE;QACvE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE1D,wBAAwB;QACxB,IAAI,cAAc,EAAE;YAClB,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;SAClE;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/D,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,oCAAoC;QACpC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG,4BAA4B,OAAO,uBAAuB,WAAW,EAAE,CAAC;QAC9F,MAAM,IAAI,GAAG,cAAW,CAAC,OAAO,CAAC,cAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAE9D,MAAM,SAAS,GAAoB;YACjC,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;oBACpC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;oBACxC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;iBACvC;aACF;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/conditions/context/providers.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/dkg.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DkgPublicKey } from '@nucypher/nucypher-core';
|
|
2
|
-
import { ChecksumAddress, DkgRitualState } from '@nucypher/shared';
|
|
2
|
+
import { ChecksumAddress, DkgRitualState, Domain } from '@nucypher/shared';
|
|
3
3
|
import { BigNumberish, ethers } from 'ethers';
|
|
4
4
|
export interface DkgRitualJSON {
|
|
5
5
|
id: number;
|
|
@@ -20,8 +20,8 @@ export declare class DkgRitual {
|
|
|
20
20
|
equals(other: DkgRitual): boolean;
|
|
21
21
|
}
|
|
22
22
|
export declare class DkgClient {
|
|
23
|
-
static initializeRitual(provider: ethers.providers.Provider, signer: ethers.Signer, ursulas: ChecksumAddress[], authority: string, duration: BigNumberish, accessController: string, waitUntilEnd?: boolean): Promise<number | undefined>;
|
|
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
|
-
static getRitual(provider: ethers.providers.Provider, ritualId: number): Promise<DkgRitual>;
|
|
26
|
-
static getFinalizedRitual(provider: ethers.providers.Provider, ritualId: number): Promise<DkgRitual>;
|
|
25
|
+
static getRitual(provider: ethers.providers.Provider, domain: Domain, ritualId: number): Promise<DkgRitual>;
|
|
26
|
+
static getFinalizedRitual(provider: ethers.providers.Provider, domain: Domain, ritualId: number): Promise<DkgRitual>;
|
|
27
27
|
}
|
package/dist/cjs/dkg.js
CHANGED
|
@@ -40,18 +40,18 @@ class DkgRitual {
|
|
|
40
40
|
}
|
|
41
41
|
exports.DkgRitual = DkgRitual;
|
|
42
42
|
class DkgClient {
|
|
43
|
-
static async initializeRitual(provider, signer, ursulas, authority, duration, accessController, waitUntilEnd = false) {
|
|
44
|
-
const ritualId = await shared_1.DkgCoordinatorAgent.initializeRitual(provider, signer, ursulas.sort(), authority, duration, accessController);
|
|
43
|
+
static async initializeRitual(provider, signer, domain, ursulas, authority, duration, accessController, waitUntilEnd = false) {
|
|
44
|
+
const ritualId = await shared_1.DkgCoordinatorAgent.initializeRitual(provider, signer, domain, ursulas.sort(), authority, duration, accessController);
|
|
45
45
|
if (waitUntilEnd) {
|
|
46
|
-
const isSuccessful = await DkgClient.waitUntilRitualEnd(provider, ritualId);
|
|
46
|
+
const isSuccessful = await DkgClient.waitUntilRitualEnd(provider, domain, ritualId);
|
|
47
47
|
if (!isSuccessful) {
|
|
48
|
-
const ritualState = await shared_1.DkgCoordinatorAgent.getRitualState(provider, ritualId);
|
|
48
|
+
const ritualState = await shared_1.DkgCoordinatorAgent.getRitualState(provider, domain, ritualId);
|
|
49
49
|
throw new Error(`Ritual initialization failed. Ritual id ${ritualId} is in state ${ritualState}`);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
return ritualId;
|
|
53
53
|
}
|
|
54
|
-
static waitUntilRitualEnd = async (provider, ritualId) => {
|
|
54
|
+
static waitUntilRitualEnd = async (provider, domain, ritualId) => {
|
|
55
55
|
return new Promise((resolve, reject) => {
|
|
56
56
|
const callback = (successful) => {
|
|
57
57
|
if (successful) {
|
|
@@ -61,20 +61,20 @@ class DkgClient {
|
|
|
61
61
|
reject();
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
|
-
shared_1.DkgCoordinatorAgent.onRitualEndEvent(provider, ritualId, callback);
|
|
64
|
+
shared_1.DkgCoordinatorAgent.onRitualEndEvent(provider, domain, ritualId, callback);
|
|
65
65
|
});
|
|
66
66
|
};
|
|
67
|
-
static async getRitual(provider, ritualId) {
|
|
68
|
-
const ritualState = await shared_1.DkgCoordinatorAgent.getRitualState(provider, ritualId);
|
|
69
|
-
const ritual = await shared_1.DkgCoordinatorAgent.getRitual(provider, ritualId);
|
|
67
|
+
static async getRitual(provider, domain, ritualId) {
|
|
68
|
+
const ritualState = await shared_1.DkgCoordinatorAgent.getRitualState(provider, domain, ritualId);
|
|
69
|
+
const ritual = await shared_1.DkgCoordinatorAgent.getRitual(provider, domain, ritualId);
|
|
70
70
|
const dkgPkBytes = new Uint8Array([
|
|
71
71
|
...(0, shared_1.fromHexString)(ritual.publicKey.word0),
|
|
72
72
|
...(0, shared_1.fromHexString)(ritual.publicKey.word1),
|
|
73
73
|
]);
|
|
74
74
|
return new DkgRitual(ritualId, nucypher_core_1.DkgPublicKey.fromBytes(dkgPkBytes), ritual.dkgSize, ritual.threshold, ritualState);
|
|
75
75
|
}
|
|
76
|
-
static async getFinalizedRitual(provider, ritualId) {
|
|
77
|
-
const ritual = await DkgClient.getRitual(provider, ritualId);
|
|
76
|
+
static async getFinalizedRitual(provider, domain, ritualId) {
|
|
77
|
+
const ritual = await DkgClient.getRitual(provider, domain, ritualId);
|
|
78
78
|
if (ritual.state !== shared_1.DkgRitualState.FINALIZED) {
|
|
79
79
|
throw new Error(`Ritual ${ritualId} is not finalized. State: ${ritual.state}`);
|
|
80
80
|
}
|
package/dist/cjs/dkg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dkg.js","sourceRoot":"","sources":["../../src/dkg.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"dkg.js","sourceRoot":"","sources":["../../src/dkg.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AACvD,6CAM0B;AAW1B,MAAa,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,4BAAY,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;AA5CD,8BA4CC;AAED,MAAa,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,4BAAmB,CAAC,gBAAgB,CACzD,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,CAAC,IAAI,EAAE,EACd,SAAS,EACT,QAAQ,EACR,gBAAgB,CACjB,CAAC;QAEF,IAAI,YAAY,EAAE;YAChB,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,kBAAkB,CACrD,QAAQ,EACR,MAAM,EACN,QAAQ,CACT,CAAC;YACF,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,WAAW,GAAG,MAAM,4BAAmB,CAAC,cAAc,CAC1D,QAAQ,EACR,MAAM,EACN,QAAQ,CACT,CAAC;gBACF,MAAM,IAAI,KAAK,CACb,2CAA2C,QAAQ,gBAAgB,WAAW,EAAE,CACjF,CAAC;aACH;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,kBAAkB,GAAG,KAAK,EACvC,QAAmC,EACnC,MAAc,EACd,QAAgB,EACE,EAAE;QACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,CAAC,UAAmB,EAAE,EAAE;gBACvC,IAAI,UAAU,EAAE;oBACd,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,EAAE,CAAC;iBACV;YACH,CAAC,CAAC;YACF,4BAAmB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEK,MAAM,CAAC,KAAK,CAAC,SAAS,CAC3B,QAAmC,EACnC,MAAc,EACd,QAAgB;QAEhB,MAAM,WAAW,GAAG,MAAM,4BAAmB,CAAC,cAAc,CAC1D,QAAQ,EACR,MAAM,EACN,QAAQ,CACT,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,4BAAmB,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,GAAG,IAAA,sBAAa,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YACxC,GAAG,IAAA,sBAAa,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;SACzC,CAAC,CAAC;QACH,OAAO,IAAI,SAAS,CAClB,QAAQ,EACR,4BAAY,CAAC,SAAS,CAAC,UAAU,CAAC,EAClC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,EAChB,WAAW,CACZ,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACpC,QAAmC,EACnC,MAAc,EACd,QAAgB;QAEhB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,KAAK,KAAK,uBAAc,CAAC,SAAS,EAAE;YAC7C,MAAM,IAAI,KAAK,CACb,UAAU,QAAQ,6BAA6B,MAAM,CAAC,KAAK,EAAE,CAC9D,CAAC;SACH;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;;AA/FH,8BAqHC"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
|
|
2
|
-
export { fromBytes, getPorterUri,
|
|
2
|
+
export { fromBytes, initialize, toBytes, toHexString, getPorterUri, domains, Domain } from '@nucypher/shared';
|
|
3
3
|
export * as conditions from './conditions';
|
|
4
|
-
export { decrypt, encrypt } from './taco';
|
|
4
|
+
export { decrypt, encrypt, encryptWithPublicKey, isAuthorized } from './taco';
|
package/dist/cjs/index.js
CHANGED
|
@@ -23,17 +23,22 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.encrypt = exports.decrypt = exports.conditions = exports.
|
|
26
|
+
exports.isAuthorized = exports.encryptWithPublicKey = exports.encrypt = exports.decrypt = exports.conditions = exports.domains = exports.getPorterUri = exports.toHexString = exports.toBytes = exports.initialize = exports.fromBytes = exports.ThresholdMessageKit = exports.DkgPublicKey = void 0;
|
|
27
27
|
var nucypher_core_1 = require("@nucypher/nucypher-core");
|
|
28
28
|
Object.defineProperty(exports, "DkgPublicKey", { enumerable: true, get: function () { return nucypher_core_1.DkgPublicKey; } });
|
|
29
29
|
Object.defineProperty(exports, "ThresholdMessageKit", { enumerable: true, get: function () { return nucypher_core_1.ThresholdMessageKit; } });
|
|
30
30
|
var shared_1 = require("@nucypher/shared");
|
|
31
31
|
Object.defineProperty(exports, "fromBytes", { enumerable: true, get: function () { return shared_1.fromBytes; } });
|
|
32
|
-
Object.defineProperty(exports, "getPorterUri", { enumerable: true, get: function () { return shared_1.getPorterUri; } });
|
|
33
32
|
Object.defineProperty(exports, "initialize", { enumerable: true, get: function () { return shared_1.initialize; } });
|
|
34
33
|
Object.defineProperty(exports, "toBytes", { enumerable: true, get: function () { return shared_1.toBytes; } });
|
|
34
|
+
Object.defineProperty(exports, "toHexString", { enumerable: true, get: function () { return shared_1.toHexString; } });
|
|
35
|
+
Object.defineProperty(exports, "getPorterUri", { enumerable: true, get: function () { return shared_1.getPorterUri; } });
|
|
36
|
+
Object.defineProperty(exports, "domains", { enumerable: true, get: function () { return shared_1.domains; } });
|
|
35
37
|
exports.conditions = __importStar(require("./conditions"));
|
|
38
|
+
// Expose registerEncrypters from taco API (#324)
|
|
36
39
|
var taco_1 = require("./taco");
|
|
37
40
|
Object.defineProperty(exports, "decrypt", { enumerable: true, get: function () { return taco_1.decrypt; } });
|
|
38
41
|
Object.defineProperty(exports, "encrypt", { enumerable: true, get: function () { return taco_1.encrypt; } });
|
|
42
|
+
Object.defineProperty(exports, "encryptWithPublicKey", { enumerable: true, get: function () { return taco_1.encryptWithPublicKey; } });
|
|
43
|
+
Object.defineProperty(exports, "isAuthorized", { enumerable: true, get: function () { return taco_1.isAuthorized; } });
|
|
39
44
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA4E;AAAnE,6GAAA,YAAY,OAAA;AAAE,oHAAA,mBAAmB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA4E;AAAnE,6GAAA,YAAY,OAAA;AAAE,oHAAA,mBAAmB,OAAA;AAC1C,2CAA8G;AAArG,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,iGAAA,OAAO,OAAA;AAE3E,2DAA2C;AAC3C,iDAAiD;AACjD,+BAA8E;AAArE,+FAAA,OAAO,OAAA;AAAE,+FAAA,OAAO,OAAA;AAAE,4GAAA,oBAAoB,OAAA;AAAE,oGAAA,YAAY,OAAA"}
|
package/dist/cjs/taco.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
|
|
2
|
+
import { ChecksumAddress, Domain } from '@nucypher/shared';
|
|
2
3
|
import { ethers } from 'ethers';
|
|
3
|
-
import { Condition } from './conditions';
|
|
4
|
-
export declare const encrypt: (provider: ethers.providers.Provider, message: Uint8Array | string, condition: Condition, ritualId: number, authSigner: ethers.Signer) => Promise<ThresholdMessageKit>;
|
|
4
|
+
import { Condition, CustomContextParam } from './conditions';
|
|
5
|
+
export declare const encrypt: (provider: ethers.providers.Provider, domain: Domain, message: Uint8Array | string, condition: Condition, ritualId: number, authSigner: ethers.Signer) => Promise<ThresholdMessageKit>;
|
|
5
6
|
export declare const encryptWithPublicKey: (message: Uint8Array | string, condition: Condition, dkgPublicKey: DkgPublicKey, authSigner: ethers.Signer) => Promise<ThresholdMessageKit>;
|
|
6
|
-
export declare const decrypt: (provider: ethers.providers.Provider, messageKit: ThresholdMessageKit, signer?: ethers.Signer,
|
|
7
|
-
export declare const isAuthorized: (provider: ethers.providers.Provider, messageKit: ThresholdMessageKit, ritualId: number) => Promise<boolean>;
|
|
7
|
+
export declare const decrypt: (provider: ethers.providers.Provider, domain: Domain, messageKit: ThresholdMessageKit, porterUri?: string, signer?: ethers.Signer, customParameters?: Record<string, CustomContextParam>) => Promise<Uint8Array>;
|
|
8
|
+
export declare const isAuthorized: (provider: ethers.providers.Provider, domain: Domain, messageKit: ThresholdMessageKit, ritualId: number) => Promise<boolean>;
|
|
9
|
+
export declare const registerEncrypters: (provider: ethers.providers.Provider, signer: ethers.Signer, domain: Domain, ritualId: number, encrypters: ChecksumAddress[]) => Promise<void>;
|
package/dist/cjs/taco.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAuthorized = exports.decrypt = exports.encryptWithPublicKey = exports.encrypt = void 0;
|
|
3
|
+
exports.registerEncrypters = exports.isAuthorized = exports.decrypt = exports.encryptWithPublicKey = exports.encrypt = void 0;
|
|
4
4
|
const nucypher_core_1 = require("@nucypher/nucypher-core");
|
|
5
5
|
const shared_1 = require("@nucypher/shared");
|
|
6
6
|
const utils_1 = require("ethers/lib/utils");
|
|
7
7
|
const conditions_1 = require("./conditions");
|
|
8
8
|
const dkg_1 = require("./dkg");
|
|
9
9
|
const tdec_1 = require("./tdec");
|
|
10
|
-
const encrypt = async (provider, message, condition, ritualId, authSigner) => {
|
|
10
|
+
const encrypt = async (provider, domain, message, condition, ritualId, authSigner) => {
|
|
11
11
|
// TODO(#264): Enable ritual initialization
|
|
12
12
|
// if (ritualId === undefined) {
|
|
13
13
|
// ritualId = await DkgClient.initializeRitual(
|
|
@@ -20,7 +20,7 @@ const encrypt = async (provider, message, condition, ritualId, authSigner) => {
|
|
|
20
20
|
// // Given that we just initialized the ritual, this should never happen
|
|
21
21
|
// throw new Error('Ritual ID is undefined');
|
|
22
22
|
// }
|
|
23
|
-
const dkgRitual = await dkg_1.DkgClient.getFinalizedRitual(provider, ritualId);
|
|
23
|
+
const dkgRitual = await dkg_1.DkgClient.getFinalizedRitual(provider, domain, ritualId);
|
|
24
24
|
return await (0, exports.encryptWithPublicKey)(message, condition, dkgRitual.dkgPublicKey, authSigner);
|
|
25
25
|
};
|
|
26
26
|
exports.encrypt = encrypt;
|
|
@@ -36,12 +36,19 @@ const encryptWithPublicKey = async (message, condition, dkgPublicKey, authSigner
|
|
|
36
36
|
return new nucypher_core_1.ThresholdMessageKit(ciphertext, acp);
|
|
37
37
|
};
|
|
38
38
|
exports.encryptWithPublicKey = encryptWithPublicKey;
|
|
39
|
-
const decrypt = async (provider,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
const decrypt = async (provider, domain, messageKit, porterUri, signer, customParameters) => {
|
|
40
|
+
if (!porterUri) {
|
|
41
|
+
porterUri = (0, shared_1.getPorterUri)(domain);
|
|
42
|
+
}
|
|
43
|
+
const ritualId = await shared_1.DkgCoordinatorAgent.getRitualIdFromPublicKey(provider, domain, messageKit.acp.publicKey);
|
|
44
|
+
const ritual = await dkg_1.DkgClient.getFinalizedRitual(provider, domain, ritualId);
|
|
45
|
+
return (0, tdec_1.retrieveAndDecrypt)(provider, domain, porterUri, messageKit, ritualId, ritual.threshold, signer, customParameters);
|
|
43
46
|
};
|
|
44
47
|
exports.decrypt = decrypt;
|
|
45
|
-
const isAuthorized = async (provider, messageKit, ritualId) => shared_1.DkgCoordinatorAgent.isEncryptionAuthorized(provider, ritualId, messageKit);
|
|
48
|
+
const isAuthorized = async (provider, domain, messageKit, ritualId) => shared_1.DkgCoordinatorAgent.isEncryptionAuthorized(provider, domain, ritualId, messageKit);
|
|
46
49
|
exports.isAuthorized = isAuthorized;
|
|
50
|
+
const registerEncrypters = async (provider, signer, domain, ritualId, encrypters) => {
|
|
51
|
+
await shared_1.GlobalAllowListAgent.registerEncrypters(provider, signer, domain, ritualId, encrypters);
|
|
52
|
+
};
|
|
53
|
+
exports.registerEncrypters = registerEncrypters;
|
|
47
54
|
//# sourceMappingURL=taco.js.map
|
package/dist/cjs/taco.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taco.js","sourceRoot":"","sources":["../../src/taco.ts"],"names":[],"mappings":";;;AAAA,2DAKiC;AACjC,
|
|
1
|
+
{"version":3,"file":"taco.js","sourceRoot":"","sources":["../../src/taco.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/tdec.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
|
|
2
|
+
import { Domain } from '@nucypher/shared';
|
|
2
3
|
import { ethers } from 'ethers';
|
|
3
|
-
import { ConditionExpression } from './conditions';
|
|
4
|
+
import { ConditionExpression, CustomContextParam } from './conditions';
|
|
4
5
|
export declare const encryptMessage: (plaintext: Uint8Array | string, encryptingKey: DkgPublicKey, conditions: ConditionExpression, authSigner: ethers.Signer) => Promise<ThresholdMessageKit>;
|
|
5
|
-
export declare const retrieveAndDecrypt: (provider: ethers.providers.Provider, porterUri: string, thresholdMessageKit: ThresholdMessageKit, ritualId: number, threshold: number, signer?: ethers.Signer) => Promise<Uint8Array>;
|
|
6
|
+
export declare const retrieveAndDecrypt: (provider: ethers.providers.Provider, domain: Domain, porterUri: string, thresholdMessageKit: ThresholdMessageKit, ritualId: number, threshold: number, signer?: ethers.Signer, customParameters?: Record<string, CustomContextParam>) => Promise<Uint8Array>;
|
package/dist/cjs/tdec.js
CHANGED
|
@@ -14,21 +14,21 @@ const encryptMessage = async (plaintext, encryptingKey, conditions, authSigner)
|
|
|
14
14
|
};
|
|
15
15
|
exports.encryptMessage = encryptMessage;
|
|
16
16
|
// Retrieve and decrypt ciphertext using provider and condition expression
|
|
17
|
-
const retrieveAndDecrypt = async (provider, porterUri, thresholdMessageKit, ritualId, threshold, signer) => {
|
|
18
|
-
const decryptionShares = await retrieve(provider, porterUri, thresholdMessageKit, ritualId, threshold, signer);
|
|
17
|
+
const retrieveAndDecrypt = async (provider, domain, porterUri, thresholdMessageKit, ritualId, threshold, signer, customParameters) => {
|
|
18
|
+
const decryptionShares = await retrieve(provider, domain, porterUri, thresholdMessageKit, ritualId, threshold, signer, customParameters);
|
|
19
19
|
const sharedSecret = (0, nucypher_core_1.combineDecryptionSharesSimple)(decryptionShares);
|
|
20
20
|
return thresholdMessageKit.decryptWithSharedSecret(sharedSecret);
|
|
21
21
|
};
|
|
22
22
|
exports.retrieveAndDecrypt = retrieveAndDecrypt;
|
|
23
23
|
// Retrieve decryption shares
|
|
24
|
-
const retrieve = async (provider, porterUri, thresholdMessageKit, ritualId, threshold, signer) => {
|
|
25
|
-
const dkgParticipants = await shared_1.DkgCoordinatorAgent.getParticipants(provider, ritualId);
|
|
26
|
-
const wasmContext = await conditions_1.ConditionContext.fromConditions(provider, thresholdMessageKit.acp.conditions, signer).toWASMContext();
|
|
24
|
+
const retrieve = async (provider, domain, porterUri, thresholdMessageKit, ritualId, threshold, signer, customParameters) => {
|
|
25
|
+
const dkgParticipants = await shared_1.DkgCoordinatorAgent.getParticipants(provider, domain, ritualId);
|
|
26
|
+
const wasmContext = await conditions_1.ConditionContext.fromConditions(provider, thresholdMessageKit.acp.conditions, signer, customParameters).toWASMContext();
|
|
27
27
|
const { sharedSecrets, encryptedRequests } = await makeDecryptionRequests(ritualId, wasmContext, dkgParticipants, thresholdMessageKit);
|
|
28
28
|
const porter = new shared_1.PorterClient(porterUri);
|
|
29
|
-
const { encryptedResponses, errors } = await porter.
|
|
29
|
+
const { encryptedResponses, errors } = await porter.tacoDecrypt(encryptedRequests, threshold);
|
|
30
30
|
if (Object.keys(encryptedResponses).length < threshold) {
|
|
31
|
-
throw new Error(`Threshold of responses not met;
|
|
31
|
+
throw new Error(`Threshold of responses not met; TACo decryption failed with errors: ${JSON.stringify(errors)}`);
|
|
32
32
|
}
|
|
33
33
|
return makeDecryptionShares(encryptedResponses, sharedSecrets, ritualId);
|
|
34
34
|
};
|
|
@@ -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
|