@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
package/dist/cjs/tdec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tdec.js","sourceRoot":"","sources":["../../src/tdec.ts"],"names":[],"mappings":";;;AAAA,2DAciC;AACjC,
|
|
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":"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"}
|
|
@@ -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"}
|
|
@@ -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,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,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,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
|
}
|
|
@@ -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
|
-
static fromConditions(provider, conditions, signer) {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
];
|
|
106
|
-
return new ConditionContext(provider, innerConditions, {}, signer);
|
|
122
|
+
static fromConditions(provider, conditions, signer, customParameters) {
|
|
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":"providers.js","sourceRoot":"","sources":["../../../../src/conditions/context/providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBzD,MAAM,OAAO,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,WAAW,CAAC,OAAO,CAAC,WAAW,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,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/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/es/dkg.js
CHANGED
|
@@ -36,18 +36,18 @@ export class DkgRitual {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
export class DkgClient {
|
|
39
|
-
static async initializeRitual(provider, signer, ursulas, authority, duration, accessController, waitUntilEnd = false) {
|
|
40
|
-
const ritualId = await DkgCoordinatorAgent.initializeRitual(provider, signer, ursulas.sort(), authority, duration, accessController);
|
|
39
|
+
static async initializeRitual(provider, signer, domain, ursulas, authority, duration, accessController, waitUntilEnd = false) {
|
|
40
|
+
const ritualId = await DkgCoordinatorAgent.initializeRitual(provider, signer, domain, ursulas.sort(), authority, duration, accessController);
|
|
41
41
|
if (waitUntilEnd) {
|
|
42
|
-
const isSuccessful = await DkgClient.waitUntilRitualEnd(provider, ritualId);
|
|
42
|
+
const isSuccessful = await DkgClient.waitUntilRitualEnd(provider, domain, ritualId);
|
|
43
43
|
if (!isSuccessful) {
|
|
44
|
-
const ritualState = await DkgCoordinatorAgent.getRitualState(provider, ritualId);
|
|
44
|
+
const ritualState = await DkgCoordinatorAgent.getRitualState(provider, domain, ritualId);
|
|
45
45
|
throw new Error(`Ritual initialization failed. Ritual id ${ritualId} is in state ${ritualState}`);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
return ritualId;
|
|
49
49
|
}
|
|
50
|
-
static waitUntilRitualEnd = async (provider, ritualId) => {
|
|
50
|
+
static waitUntilRitualEnd = async (provider, domain, ritualId) => {
|
|
51
51
|
return new Promise((resolve, reject) => {
|
|
52
52
|
const callback = (successful) => {
|
|
53
53
|
if (successful) {
|
|
@@ -57,20 +57,20 @@ export class DkgClient {
|
|
|
57
57
|
reject();
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
|
-
DkgCoordinatorAgent.onRitualEndEvent(provider, ritualId, callback);
|
|
60
|
+
DkgCoordinatorAgent.onRitualEndEvent(provider, domain, ritualId, callback);
|
|
61
61
|
});
|
|
62
62
|
};
|
|
63
|
-
static async getRitual(provider, ritualId) {
|
|
64
|
-
const ritualState = await DkgCoordinatorAgent.getRitualState(provider, ritualId);
|
|
65
|
-
const ritual = await DkgCoordinatorAgent.getRitual(provider, ritualId);
|
|
63
|
+
static async getRitual(provider, domain, ritualId) {
|
|
64
|
+
const ritualState = await DkgCoordinatorAgent.getRitualState(provider, domain, ritualId);
|
|
65
|
+
const ritual = await DkgCoordinatorAgent.getRitual(provider, domain, ritualId);
|
|
66
66
|
const dkgPkBytes = new Uint8Array([
|
|
67
67
|
...fromHexString(ritual.publicKey.word0),
|
|
68
68
|
...fromHexString(ritual.publicKey.word1),
|
|
69
69
|
]);
|
|
70
70
|
return new DkgRitual(ritualId, DkgPublicKey.fromBytes(dkgPkBytes), ritual.dkgSize, ritual.threshold, ritualState);
|
|
71
71
|
}
|
|
72
|
-
static async getFinalizedRitual(provider, ritualId) {
|
|
73
|
-
const ritual = await DkgClient.getRitual(provider, ritualId);
|
|
72
|
+
static async getFinalizedRitual(provider, domain, ritualId) {
|
|
73
|
+
const ritual = await DkgClient.getRitual(provider, domain, ritualId);
|
|
74
74
|
if (ritual.state !== DkgRitualState.FINALIZED) {
|
|
75
75
|
throw new Error(`Ritual ${ritualId} is not finalized. State: ${ritual.state}`);
|
|
76
76
|
}
|
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,
|
|
1
|
+
{"version":3,"file":"dkg.js","sourceRoot":"","sources":["../../src/dkg.ts"],"names":[],"mappings":"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"}
|
package/dist/es/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/es/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
|
|
2
|
-
export { fromBytes,
|
|
2
|
+
export { fromBytes, initialize, toBytes, toHexString, getPorterUri, domains } from '@nucypher/shared';
|
|
3
3
|
export * as conditions from './conditions';
|
|
4
|
-
|
|
4
|
+
// Expose registerEncrypters from taco API (#324)
|
|
5
|
+
export { decrypt, encrypt, encryptWithPublicKey, isAuthorized } from './taco';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAU,MAAM,kBAAkB,CAAC;AAE9G,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,iDAAiD;AACjD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/es/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/es/taco.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AccessControlPolicy, encryptForDkg, ThresholdMessageKit, } from '@nucypher/nucypher-core';
|
|
2
|
-
import { DkgCoordinatorAgent, fromHexString, getPorterUri, toBytes, } from '@nucypher/shared';
|
|
2
|
+
import { DkgCoordinatorAgent, fromHexString, getPorterUri, GlobalAllowListAgent, toBytes, } from '@nucypher/shared';
|
|
3
3
|
import { keccak256 } from 'ethers/lib/utils';
|
|
4
4
|
import { ConditionExpression } from './conditions';
|
|
5
5
|
import { DkgClient } from './dkg';
|
|
6
6
|
import { retrieveAndDecrypt } from './tdec';
|
|
7
|
-
export const encrypt = async (provider, message, condition, ritualId, authSigner) => {
|
|
7
|
+
export const encrypt = async (provider, domain, message, condition, ritualId, authSigner) => {
|
|
8
8
|
// TODO(#264): Enable ritual initialization
|
|
9
9
|
// if (ritualId === undefined) {
|
|
10
10
|
// ritualId = await DkgClient.initializeRitual(
|
|
@@ -17,7 +17,7 @@ export const encrypt = async (provider, message, condition, ritualId, authSigner
|
|
|
17
17
|
// // Given that we just initialized the ritual, this should never happen
|
|
18
18
|
// throw new Error('Ritual ID is undefined');
|
|
19
19
|
// }
|
|
20
|
-
const dkgRitual = await DkgClient.getFinalizedRitual(provider, ritualId);
|
|
20
|
+
const dkgRitual = await DkgClient.getFinalizedRitual(provider, domain, ritualId);
|
|
21
21
|
return await encryptWithPublicKey(message, condition, dkgRitual.dkgPublicKey, authSigner);
|
|
22
22
|
};
|
|
23
23
|
export const encryptWithPublicKey = async (message, condition, dkgPublicKey, authSigner) => {
|
|
@@ -31,10 +31,16 @@ export const encryptWithPublicKey = async (message, condition, dkgPublicKey, aut
|
|
|
31
31
|
const acp = new AccessControlPolicy(authenticatedData, fromHexString(authorization));
|
|
32
32
|
return new ThresholdMessageKit(ciphertext, acp);
|
|
33
33
|
};
|
|
34
|
-
export const decrypt = async (provider,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
export const decrypt = async (provider, domain, messageKit, porterUri, signer, customParameters) => {
|
|
35
|
+
if (!porterUri) {
|
|
36
|
+
porterUri = getPorterUri(domain);
|
|
37
|
+
}
|
|
38
|
+
const ritualId = await DkgCoordinatorAgent.getRitualIdFromPublicKey(provider, domain, messageKit.acp.publicKey);
|
|
39
|
+
const ritual = await DkgClient.getFinalizedRitual(provider, domain, ritualId);
|
|
40
|
+
return retrieveAndDecrypt(provider, domain, porterUri, messageKit, ritualId, ritual.threshold, signer, customParameters);
|
|
41
|
+
};
|
|
42
|
+
export const isAuthorized = async (provider, domain, messageKit, ritualId) => DkgCoordinatorAgent.isEncryptionAuthorized(provider, domain, ritualId, messageKit);
|
|
43
|
+
export const registerEncrypters = async (provider, signer, domain, ritualId, encrypters) => {
|
|
44
|
+
await GlobalAllowListAgent.registerEncrypters(provider, signer, domain, ritualId, encrypters);
|
|
38
45
|
};
|
|
39
|
-
export const isAuthorized = async (provider, messageKit, ritualId) => DkgCoordinatorAgent.isEncryptionAuthorized(provider, ritualId, messageKit);
|
|
40
46
|
//# sourceMappingURL=taco.js.map
|
package/dist/es/taco.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taco.js","sourceRoot":"","sources":["../../src/taco.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEnB,aAAa,EACb,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"taco.js","sourceRoot":"","sources":["../../src/taco.ts"],"names":[],"mappings":"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"}
|
package/dist/es/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/es/tdec.js
CHANGED
|
@@ -10,20 +10,20 @@ export const encryptMessage = async (plaintext, encryptingKey, conditions, authS
|
|
|
10
10
|
return new ThresholdMessageKit(ciphertext, acp);
|
|
11
11
|
};
|
|
12
12
|
// Retrieve and decrypt ciphertext using provider and condition expression
|
|
13
|
-
export const retrieveAndDecrypt = async (provider, porterUri, thresholdMessageKit, ritualId, threshold, signer) => {
|
|
14
|
-
const decryptionShares = await retrieve(provider, porterUri, thresholdMessageKit, ritualId, threshold, signer);
|
|
13
|
+
export const retrieveAndDecrypt = async (provider, domain, porterUri, thresholdMessageKit, ritualId, threshold, signer, customParameters) => {
|
|
14
|
+
const decryptionShares = await retrieve(provider, domain, porterUri, thresholdMessageKit, ritualId, threshold, signer, customParameters);
|
|
15
15
|
const sharedSecret = combineDecryptionSharesSimple(decryptionShares);
|
|
16
16
|
return thresholdMessageKit.decryptWithSharedSecret(sharedSecret);
|
|
17
17
|
};
|
|
18
18
|
// Retrieve decryption shares
|
|
19
|
-
const retrieve = async (provider, porterUri, thresholdMessageKit, ritualId, threshold, signer) => {
|
|
20
|
-
const dkgParticipants = await DkgCoordinatorAgent.getParticipants(provider, ritualId);
|
|
21
|
-
const wasmContext = await ConditionContext.fromConditions(provider, thresholdMessageKit.acp.conditions, signer).toWASMContext();
|
|
19
|
+
const retrieve = async (provider, domain, porterUri, thresholdMessageKit, ritualId, threshold, signer, customParameters) => {
|
|
20
|
+
const dkgParticipants = await DkgCoordinatorAgent.getParticipants(provider, domain, ritualId);
|
|
21
|
+
const wasmContext = await ConditionContext.fromConditions(provider, thresholdMessageKit.acp.conditions, signer, customParameters).toWASMContext();
|
|
22
22
|
const { sharedSecrets, encryptedRequests } = await makeDecryptionRequests(ritualId, wasmContext, dkgParticipants, thresholdMessageKit);
|
|
23
23
|
const porter = new PorterClient(porterUri);
|
|
24
|
-
const { encryptedResponses, errors } = await porter.
|
|
24
|
+
const { encryptedResponses, errors } = await porter.tacoDecrypt(encryptedRequests, threshold);
|
|
25
25
|
if (Object.keys(encryptedResponses).length < threshold) {
|
|
26
|
-
throw new Error(`Threshold of responses not met;
|
|
26
|
+
throw new Error(`Threshold of responses not met; TACo decryption failed with errors: ${JSON.stringify(errors)}`);
|
|
27
27
|
}
|
|
28
28
|
return makeDecryptionShares(encryptedResponses, sharedSecrets, ritualId);
|
|
29
29
|
};
|
|
@@ -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
|