@nucypher/taco 0.4.0 → 0.6.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/cjs/conditions/base/contract.d.ts +2 -432
- package/dist/cjs/conditions/base/contract.js +7 -80
- package/dist/cjs/conditions/base/contract.js.map +1 -1
- package/dist/cjs/conditions/base/index.d.ts +1 -0
- package/dist/cjs/conditions/base/index.js +2 -1
- package/dist/cjs/conditions/base/index.js.map +1 -1
- package/dist/cjs/conditions/base/json-api.d.ts +7 -0
- package/dist/cjs/conditions/base/json-api.js +19 -0
- package/dist/cjs/conditions/base/json-api.js.map +1 -0
- package/dist/cjs/conditions/base/rpc.d.ts +2 -42
- package/dist/cjs/conditions/base/rpc.js +7 -22
- package/dist/cjs/conditions/base/rpc.js.map +1 -1
- package/dist/cjs/conditions/base/time.d.ts +2 -40
- package/dist/cjs/conditions/base/time.js +8 -15
- package/dist/cjs/conditions/base/time.js.map +1 -1
- package/dist/cjs/conditions/compound-condition.d.ts +2 -4
- package/dist/cjs/conditions/compound-condition.js +7 -38
- package/dist/cjs/conditions/compound-condition.js.map +1 -1
- package/dist/cjs/conditions/condition-expr.d.ts +0 -3
- package/dist/cjs/conditions/condition-expr.js +0 -4
- package/dist/cjs/conditions/condition-expr.js.map +1 -1
- package/dist/cjs/conditions/condition-factory.js +11 -0
- package/dist/cjs/conditions/condition-factory.js.map +1 -1
- package/dist/cjs/conditions/condition.d.ts +1 -1
- package/dist/cjs/conditions/condition.js +3 -1
- package/dist/cjs/conditions/condition.js.map +1 -1
- package/dist/cjs/conditions/const.d.ts +1 -2
- package/dist/cjs/conditions/const.js +6 -8
- package/dist/cjs/conditions/const.js.map +1 -1
- package/dist/cjs/conditions/context/context.d.ts +15 -13
- package/dist/cjs/conditions/context/context.js +62 -56
- package/dist/cjs/conditions/context/context.js.map +1 -1
- package/dist/cjs/conditions/if-then-else-condition.d.ts +7 -0
- package/dist/cjs/conditions/if-then-else-condition.js +18 -0
- package/dist/cjs/conditions/if-then-else-condition.js.map +1 -0
- package/dist/cjs/conditions/index.d.ts +2 -0
- package/dist/cjs/conditions/index.js +3 -1
- package/dist/cjs/conditions/index.js.map +1 -1
- package/dist/cjs/conditions/multi-condition.d.ts +2 -0
- package/dist/cjs/conditions/multi-condition.js +35 -0
- package/dist/cjs/conditions/multi-condition.js.map +1 -0
- package/dist/cjs/conditions/schemas/common.d.ts +12 -0
- package/dist/cjs/conditions/schemas/common.js +36 -0
- package/dist/cjs/conditions/schemas/common.js.map +1 -0
- package/dist/cjs/conditions/schemas/compound.d.ts +4 -0
- package/dist/cjs/conditions/schemas/compound.js +36 -0
- package/dist/cjs/conditions/schemas/compound.js.map +1 -0
- package/dist/cjs/conditions/schemas/context.d.ts +3 -0
- package/dist/cjs/conditions/schemas/context.js +16 -0
- package/dist/cjs/conditions/schemas/context.js.map +1 -0
- package/dist/cjs/conditions/schemas/contract.d.ts +428 -0
- package/dist/cjs/conditions/schemas/contract.js +81 -0
- package/dist/cjs/conditions/schemas/contract.js.map +1 -0
- package/dist/cjs/conditions/schemas/if-then-else.d.ts +4 -0
- package/dist/cjs/conditions/schemas/if-then-else.js +40 -0
- package/dist/cjs/conditions/schemas/if-then-else.js.map +1 -0
- package/dist/cjs/conditions/schemas/json-api.d.ts +46 -0
- package/dist/cjs/conditions/schemas/json-api.js +37 -0
- package/dist/cjs/conditions/schemas/json-api.js.map +1 -0
- package/dist/cjs/conditions/schemas/return-value-test.d.ts +15 -0
- package/dist/cjs/conditions/schemas/return-value-test.js +11 -0
- package/dist/cjs/conditions/schemas/return-value-test.js.map +1 -0
- package/dist/cjs/conditions/schemas/rpc.d.ts +42 -0
- package/dist/cjs/conditions/schemas/rpc.js +58 -0
- package/dist/cjs/conditions/schemas/rpc.js.map +1 -0
- package/dist/cjs/conditions/schemas/sequential.d.ts +6 -0
- package/dist/cjs/conditions/schemas/sequential.js +39 -0
- package/dist/cjs/conditions/schemas/sequential.js.map +1 -0
- package/dist/cjs/conditions/schemas/time.d.ts +40 -0
- package/dist/cjs/conditions/schemas/time.js +16 -0
- package/dist/cjs/conditions/schemas/time.js.map +1 -0
- package/dist/cjs/conditions/schemas/utils.d.ts +2 -0
- package/dist/cjs/conditions/schemas/utils.js +21 -0
- package/dist/cjs/conditions/schemas/utils.js.map +1 -0
- package/dist/cjs/conditions/sequential.d.ts +7 -0
- package/dist/cjs/conditions/sequential.js +18 -0
- package/dist/cjs/conditions/sequential.js.map +1 -0
- package/dist/cjs/conditions/shared.d.ts +2 -19
- package/dist/cjs/conditions/shared.js +6 -32
- package/dist/cjs/conditions/shared.js.map +1 -1
- package/dist/cjs/dkg.d.ts +1 -1
- package/dist/cjs/dkg.js +2 -2
- package/dist/cjs/dkg.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -3
- package/dist/cjs/index.js +2 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/taco.d.ts +5 -23
- package/dist/cjs/taco.js +9 -36
- package/dist/cjs/taco.js.map +1 -1
- package/dist/cjs/tdec.d.ts +3 -4
- package/dist/cjs/tdec.js +11 -8
- package/dist/cjs/tdec.js.map +1 -1
- package/dist/es/conditions/base/contract.d.ts +2 -432
- package/dist/es/conditions/base/contract.js +2 -77
- package/dist/es/conditions/base/contract.js.map +1 -1
- package/dist/es/conditions/base/index.d.ts +1 -0
- package/dist/es/conditions/base/index.js +1 -0
- package/dist/es/conditions/base/index.js.map +1 -1
- package/dist/es/conditions/base/json-api.d.ts +7 -0
- package/dist/es/conditions/base/json-api.js +12 -0
- package/dist/es/conditions/base/json-api.js.map +1 -0
- package/dist/es/conditions/base/rpc.d.ts +2 -42
- package/dist/es/conditions/base/rpc.js +2 -16
- package/dist/es/conditions/base/rpc.js.map +1 -1
- package/dist/es/conditions/base/time.d.ts +2 -40
- package/dist/es/conditions/base/time.js +2 -12
- package/dist/es/conditions/base/time.js.map +1 -1
- package/dist/es/conditions/compound-condition.d.ts +2 -4
- package/dist/es/conditions/compound-condition.js +2 -35
- package/dist/es/conditions/compound-condition.js.map +1 -1
- package/dist/es/conditions/condition-expr.d.ts +0 -3
- package/dist/es/conditions/condition-expr.js +0 -4
- package/dist/es/conditions/condition-expr.js.map +1 -1
- package/dist/es/conditions/condition-factory.js +11 -0
- package/dist/es/conditions/condition-factory.js.map +1 -1
- package/dist/es/conditions/condition.d.ts +1 -1
- package/dist/es/conditions/condition.js +1 -0
- package/dist/es/conditions/condition.js.map +1 -1
- package/dist/es/conditions/const.d.ts +1 -2
- package/dist/es/conditions/const.js +5 -7
- package/dist/es/conditions/const.js.map +1 -1
- package/dist/es/conditions/context/context.d.ts +15 -13
- package/dist/es/conditions/context/context.js +63 -57
- package/dist/es/conditions/context/context.js.map +1 -1
- package/dist/es/conditions/if-then-else-condition.d.ts +7 -0
- package/dist/es/conditions/if-then-else-condition.js +12 -0
- package/dist/es/conditions/if-then-else-condition.js.map +1 -0
- package/dist/es/conditions/index.d.ts +2 -0
- package/dist/es/conditions/index.js +2 -0
- package/dist/es/conditions/index.js.map +1 -1
- package/dist/es/conditions/multi-condition.d.ts +2 -0
- package/dist/es/conditions/multi-condition.js +31 -0
- package/dist/es/conditions/multi-condition.js.map +1 -0
- package/dist/es/conditions/schemas/common.d.ts +12 -0
- package/dist/es/conditions/schemas/common.js +33 -0
- package/dist/es/conditions/schemas/common.js.map +1 -0
- package/dist/es/conditions/schemas/compound.d.ts +4 -0
- package/dist/es/conditions/schemas/compound.js +33 -0
- package/dist/es/conditions/schemas/compound.js.map +1 -0
- package/dist/es/conditions/schemas/context.d.ts +3 -0
- package/dist/es/conditions/schemas/context.js +13 -0
- package/dist/es/conditions/schemas/context.js.map +1 -0
- package/dist/es/conditions/schemas/contract.d.ts +428 -0
- package/dist/es/conditions/schemas/contract.js +78 -0
- package/dist/es/conditions/schemas/contract.js.map +1 -0
- package/dist/es/conditions/schemas/if-then-else.d.ts +4 -0
- package/dist/es/conditions/schemas/if-then-else.js +37 -0
- package/dist/es/conditions/schemas/if-then-else.js.map +1 -0
- package/dist/es/conditions/schemas/json-api.d.ts +46 -0
- package/dist/es/conditions/schemas/json-api.js +34 -0
- package/dist/es/conditions/schemas/json-api.js.map +1 -0
- package/dist/es/conditions/schemas/return-value-test.d.ts +15 -0
- package/dist/es/conditions/schemas/return-value-test.js +8 -0
- package/dist/es/conditions/schemas/return-value-test.js.map +1 -0
- package/dist/es/conditions/schemas/rpc.d.ts +42 -0
- package/dist/es/conditions/schemas/rpc.js +32 -0
- package/dist/es/conditions/schemas/rpc.js.map +1 -0
- package/dist/es/conditions/schemas/sequential.d.ts +6 -0
- package/dist/es/conditions/schemas/sequential.js +36 -0
- package/dist/es/conditions/schemas/sequential.js.map +1 -0
- package/dist/es/conditions/schemas/time.d.ts +40 -0
- package/dist/es/conditions/schemas/time.js +13 -0
- package/dist/es/conditions/schemas/time.js.map +1 -0
- package/dist/es/conditions/schemas/utils.d.ts +2 -0
- package/dist/es/conditions/schemas/utils.js +18 -0
- package/dist/es/conditions/schemas/utils.js.map +1 -0
- package/dist/es/conditions/sequential.d.ts +7 -0
- package/dist/es/conditions/sequential.js +12 -0
- package/dist/es/conditions/sequential.js.map +1 -0
- package/dist/es/conditions/shared.d.ts +2 -19
- package/dist/es/conditions/shared.js +2 -33
- package/dist/es/conditions/shared.js.map +1 -1
- package/dist/es/dkg.d.ts +1 -1
- package/dist/es/dkg.js +2 -2
- package/dist/es/dkg.js.map +1 -1
- package/dist/es/index.d.ts +2 -3
- package/dist/es/index.js +2 -5
- package/dist/es/index.js.map +1 -1
- package/dist/es/taco.d.ts +5 -23
- package/dist/es/taco.js +9 -34
- package/dist/es/taco.js.map +1 -1
- package/dist/es/tdec.d.ts +3 -4
- package/dist/es/tdec.js +12 -9
- 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 +7 -6
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const RpcConditionType = "rpc";
|
|
3
|
+
export declare const rpcConditionSchema: z.ZodObject<{
|
|
4
|
+
conditionType: z.ZodDefault<z.ZodLiteral<"rpc">>;
|
|
5
|
+
chain: z.ZodNever | z.ZodLiteral<z.Primitive> | z.ZodUnion<[z.ZodLiteral<z.Primitive>, z.ZodLiteral<z.Primitive>, ...z.ZodLiteral<z.Primitive>[]]>;
|
|
6
|
+
method: z.ZodEnum<["eth_getBalance"]>;
|
|
7
|
+
parameters: z.ZodUnion<[z.ZodTuple<[z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<[":userAddress", ":userAddressExternalEIP4361"]>, z.ZodString]>, z.ZodUnion<[z.ZodUnion<[z.ZodNumber, z.ZodString, z.ZodEnum<["earliest", "finalized", "safe", "latest", "pending"]>]>, z.ZodString]>], null>, z.ZodTuple<[z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<[":userAddress", ":userAddressExternalEIP4361"]>, z.ZodString]>], null>]>;
|
|
8
|
+
returnValueTest: z.ZodObject<{
|
|
9
|
+
index: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
11
|
+
value: z.ZodType<any, z.ZodTypeDef, any>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
14
|
+
index?: number | undefined;
|
|
15
|
+
value?: any;
|
|
16
|
+
}, {
|
|
17
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
18
|
+
index?: number | undefined;
|
|
19
|
+
value?: any;
|
|
20
|
+
}>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
conditionType: "rpc";
|
|
23
|
+
parameters: [string] | [string, string | number];
|
|
24
|
+
returnValueTest: {
|
|
25
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
26
|
+
index?: number | undefined;
|
|
27
|
+
value?: any;
|
|
28
|
+
};
|
|
29
|
+
method: "eth_getBalance";
|
|
30
|
+
chain?: z.Primitive;
|
|
31
|
+
}, {
|
|
32
|
+
parameters: [string] | [string, string | number];
|
|
33
|
+
returnValueTest: {
|
|
34
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
35
|
+
index?: number | undefined;
|
|
36
|
+
value?: any;
|
|
37
|
+
};
|
|
38
|
+
method: "eth_getBalance";
|
|
39
|
+
conditionType?: "rpc" | undefined;
|
|
40
|
+
chain?: z.Primitive;
|
|
41
|
+
}>;
|
|
42
|
+
export type RpcConditionProps = z.infer<typeof rpcConditionSchema>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BlockIdentifierSchema, EthAddressSchema } from '@nucypher/shared';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { SUPPORTED_CHAIN_IDS } from '../const';
|
|
4
|
+
import createUnionSchema, { baseConditionSchema, UserAddressSchema, } from './common';
|
|
5
|
+
import { contextParamSchema } from './context';
|
|
6
|
+
import { returnValueTestSchema } from './return-value-test';
|
|
7
|
+
export const RpcConditionType = 'rpc';
|
|
8
|
+
const EthAddressOrContextVariableSchema = z.union([
|
|
9
|
+
EthAddressSchema,
|
|
10
|
+
UserAddressSchema,
|
|
11
|
+
contextParamSchema,
|
|
12
|
+
]);
|
|
13
|
+
const BlockOrContextParamSchema = z.union([
|
|
14
|
+
BlockIdentifierSchema,
|
|
15
|
+
contextParamSchema,
|
|
16
|
+
]);
|
|
17
|
+
// eth_getBalance schema specification
|
|
18
|
+
// - Ethereum spec: https://ethereum.github.io/execution-apis/api-documentation/
|
|
19
|
+
// - web3py: https://web3py.readthedocs.io/en/stable/web3.eth.html#web3.eth.Eth.get_balance
|
|
20
|
+
export const rpcConditionSchema = baseConditionSchema.extend({
|
|
21
|
+
conditionType: z.literal(RpcConditionType).default(RpcConditionType),
|
|
22
|
+
chain: createUnionSchema(SUPPORTED_CHAIN_IDS),
|
|
23
|
+
method: z.enum(['eth_getBalance']),
|
|
24
|
+
parameters: z.union([
|
|
25
|
+
// Spec requires 2 parameters: an address and a block identifier
|
|
26
|
+
z.tuple([EthAddressOrContextVariableSchema, BlockOrContextParamSchema]),
|
|
27
|
+
// Block identifier can be omitted, since web3py (which runs on TACo exec layer) defaults to 'latest',
|
|
28
|
+
z.tuple([EthAddressOrContextVariableSchema]),
|
|
29
|
+
]),
|
|
30
|
+
returnValueTest: returnValueTestSchema, // Update to allow multiple return values after expanding supported methods
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=rpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,iBAAiB,EAAE,EACxB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC;IAChD,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;CACnB,CAAC,CAAC;AACH,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC;IACxC,qBAAqB;IACrB,kBAAkB;CACnB,CAAC,CAAC;AAEH,sCAAsC;AACtC,gFAAgF;AAChF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAC3D,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACpE,KAAK,EAAE,iBAAiB,CAAC,mBAAmB,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC;QAClB,gEAAgE;QAChE,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,EAAE,yBAAyB,CAAC,CAAC;QACvE,sGAAsG;QACtG,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAAC,CAAC;KAC7C,CAAC;IACF,eAAe,EAAE,qBAAqB,EAAE,2EAA2E;CACpH,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const SequentialConditionType = "sequential";
|
|
3
|
+
export declare const conditionVariableSchema: z.ZodSchema;
|
|
4
|
+
export type ConditionVariableProps = z.infer<typeof conditionVariableSchema>;
|
|
5
|
+
export declare const sequentialConditionSchema: z.ZodSchema;
|
|
6
|
+
export type SequentialConditionProps = z.infer<typeof sequentialConditionSchema>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { maxNestedDepth } from '../multi-condition';
|
|
3
|
+
import { baseConditionSchema, plainStringSchema } from './common';
|
|
4
|
+
import { anyConditionSchema } from './utils';
|
|
5
|
+
export const SequentialConditionType = 'sequential';
|
|
6
|
+
export const conditionVariableSchema = z.lazy(() => z.object({
|
|
7
|
+
varName: plainStringSchema,
|
|
8
|
+
condition: anyConditionSchema,
|
|
9
|
+
}));
|
|
10
|
+
export const sequentialConditionSchema = baseConditionSchema
|
|
11
|
+
.extend({
|
|
12
|
+
conditionType: z
|
|
13
|
+
.literal(SequentialConditionType)
|
|
14
|
+
.default(SequentialConditionType),
|
|
15
|
+
conditionVariables: z.array(conditionVariableSchema).min(2).max(5),
|
|
16
|
+
})
|
|
17
|
+
.refine((condition) => maxNestedDepth(2)(condition), {
|
|
18
|
+
message: 'Exceeded max nested depth of 2 for multi-condition type',
|
|
19
|
+
path: ['conditionVariables'],
|
|
20
|
+
})
|
|
21
|
+
.refine(
|
|
22
|
+
// check for duplicate var names
|
|
23
|
+
(condition) => {
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
return condition.conditionVariables.every((child) => {
|
|
26
|
+
if (seen.has(child.varName)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
seen.add(child.varName);
|
|
30
|
+
return true;
|
|
31
|
+
});
|
|
32
|
+
}, {
|
|
33
|
+
message: 'Duplicate variable names are not allowed',
|
|
34
|
+
path: ['conditionVariables'],
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=sequential.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequential.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/sequential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAEpD,MAAM,CAAC,MAAM,uBAAuB,GAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC9D,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,iBAAiB;IAC1B,SAAS,EAAE,kBAAkB;CAC9B,CAAC,CACH,CAAC;AAGF,MAAM,CAAC,MAAM,yBAAyB,GAAgB,mBAAmB;KACtE,MAAM,CAAC;IACN,aAAa,EAAE,CAAC;SACb,OAAO,CAAC,uBAAuB,CAAC;SAChC,OAAO,CAAC,uBAAuB,CAAC;IACnC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;KACD,MAAM,CACL,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAC3C;IACE,OAAO,EAAE,yDAAyD;IAClE,IAAI,EAAE,CAAC,oBAAoB,CAAC;CAC7B,CACF;KACA,MAAM;AACL,gCAAgC;AAChC,CAAC,SAAS,EAAE,EAAE;IACZ,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,OAAO,SAAS,CAAC,kBAAkB,CAAC,KAAK,CACvC,CAAC,KAA6B,EAAE,EAAE;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;AACJ,CAAC,EACD;IACE,OAAO,EAAE,0CAA0C;IACnD,IAAI,EAAE,CAAC,oBAAoB,CAAC;CAC7B,CACF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const TimeConditionType = "time";
|
|
3
|
+
export declare const TimeConditionMethod = "blocktime";
|
|
4
|
+
export declare const timeConditionSchema: z.ZodObject<{
|
|
5
|
+
conditionType: z.ZodDefault<z.ZodLiteral<"time">>;
|
|
6
|
+
method: z.ZodDefault<z.ZodLiteral<"blocktime">>;
|
|
7
|
+
chain: z.ZodNever | z.ZodLiteral<z.Primitive> | z.ZodUnion<[z.ZodLiteral<z.Primitive>, z.ZodLiteral<z.Primitive>, ...z.ZodLiteral<z.Primitive>[]]>;
|
|
8
|
+
returnValueTest: z.ZodObject<{
|
|
9
|
+
index: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
11
|
+
value: z.ZodType<any, z.ZodTypeDef, any>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
14
|
+
index?: number | undefined;
|
|
15
|
+
value?: any;
|
|
16
|
+
}, {
|
|
17
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
18
|
+
index?: number | undefined;
|
|
19
|
+
value?: any;
|
|
20
|
+
}>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
conditionType: "time";
|
|
23
|
+
returnValueTest: {
|
|
24
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
25
|
+
index?: number | undefined;
|
|
26
|
+
value?: any;
|
|
27
|
+
};
|
|
28
|
+
method: "blocktime";
|
|
29
|
+
chain?: z.Primitive;
|
|
30
|
+
}, {
|
|
31
|
+
returnValueTest: {
|
|
32
|
+
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
33
|
+
index?: number | undefined;
|
|
34
|
+
value?: any;
|
|
35
|
+
};
|
|
36
|
+
conditionType?: "time" | undefined;
|
|
37
|
+
method?: "blocktime" | undefined;
|
|
38
|
+
chain?: z.Primitive;
|
|
39
|
+
}>;
|
|
40
|
+
export type TimeConditionProps = z.infer<typeof timeConditionSchema>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { rpcConditionSchema } from './rpc';
|
|
3
|
+
// TimeCondition is an RpcCondition with the method set to 'blocktime' and no parameters
|
|
4
|
+
export const TimeConditionType = 'time';
|
|
5
|
+
export const TimeConditionMethod = 'blocktime';
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7
|
+
const { parameters: _, ...restShape } = rpcConditionSchema.shape;
|
|
8
|
+
export const timeConditionSchema = z.object({
|
|
9
|
+
...restShape,
|
|
10
|
+
conditionType: z.literal(TimeConditionType).default(TimeConditionType),
|
|
11
|
+
method: z.literal(TimeConditionMethod).default(TimeConditionMethod),
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,wFAAwF;AAExF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE/C,6DAA6D;AAC7D,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,SAAS;IACZ,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACtE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;CACpE,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { compoundConditionSchema } from '../compound-condition';
|
|
3
|
+
import { contractConditionSchema } from './contract';
|
|
4
|
+
import { ifThenElseConditionSchema } from './if-then-else';
|
|
5
|
+
import { jsonApiConditionSchema } from './json-api';
|
|
6
|
+
import { rpcConditionSchema } from './rpc';
|
|
7
|
+
import { sequentialConditionSchema } from './sequential';
|
|
8
|
+
import { timeConditionSchema } from './time';
|
|
9
|
+
export const anyConditionSchema = z.lazy(() => z.union([
|
|
10
|
+
rpcConditionSchema,
|
|
11
|
+
timeConditionSchema,
|
|
12
|
+
contractConditionSchema,
|
|
13
|
+
compoundConditionSchema,
|
|
14
|
+
jsonApiConditionSchema,
|
|
15
|
+
sequentialConditionSchema,
|
|
16
|
+
ifThenElseConditionSchema,
|
|
17
|
+
]));
|
|
18
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,CAAC,MAAM,kBAAkB,GAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACzD,CAAC,CAAC,KAAK,CAAC;IACN,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,yBAAyB;IACzB,yBAAyB;CAC1B,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Condition } from './condition';
|
|
2
|
+
import { SequentialConditionProps } from './schemas/sequential';
|
|
3
|
+
import { OmitConditionType } from './shared';
|
|
4
|
+
export { ConditionVariableProps, SequentialConditionProps, sequentialConditionSchema, SequentialConditionType, } from './schemas/sequential';
|
|
5
|
+
export declare class SequentialCondition extends Condition {
|
|
6
|
+
constructor(value: OmitConditionType<SequentialConditionProps>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Condition } from './condition';
|
|
2
|
+
import { sequentialConditionSchema, SequentialConditionType, } from './schemas/sequential';
|
|
3
|
+
export { sequentialConditionSchema, SequentialConditionType, } from './schemas/sequential';
|
|
4
|
+
export class SequentialCondition extends Condition {
|
|
5
|
+
constructor(value) {
|
|
6
|
+
super(sequentialConditionSchema, {
|
|
7
|
+
conditionType: SequentialConditionType,
|
|
8
|
+
...value,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=sequential.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequential.js","sourceRoot":"","sources":["../../../src/conditions/sequential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAEL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAGL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,KAAkD;QAC5D,KAAK,CAAC,yBAAyB,EAAE;YAC/B,aAAa,EAAE,uBAAuB;YACtC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const contextParamSchema: z.ZodString;
|
|
3
|
-
export declare const plainStringSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
4
|
-
export declare const paramOrContextParamSchema: z.ZodSchema;
|
|
5
|
-
export declare const returnValueTestSchema: z.ZodObject<{
|
|
6
|
-
index: z.ZodOptional<z.ZodNumber>;
|
|
7
|
-
comparator: z.ZodEnum<["==", ">", "<", ">=", "<=", "!="]>;
|
|
8
|
-
value: z.ZodType<any, z.ZodTypeDef, any>;
|
|
9
|
-
}, "strip", z.ZodTypeAny, {
|
|
10
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
11
|
-
value?: any;
|
|
12
|
-
index?: number | undefined;
|
|
13
|
-
}, {
|
|
14
|
-
comparator: "==" | ">" | "<" | ">=" | "<=" | "!=";
|
|
15
|
-
value?: any;
|
|
16
|
-
index?: number | undefined;
|
|
17
|
-
}>;
|
|
18
|
-
export type ReturnValueTestProps = z.infer<typeof returnValueTestSchema>;
|
|
19
|
-
export declare const EthAddressOrUserAddressSchema: z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<[":userAddress", ":userAddressExternalEIP4361"]>]>;
|
|
20
1
|
export type OmitConditionType<T> = Omit<T, 'conditionType'>;
|
|
2
|
+
export { contextParamSchema, paramOrContextParamSchema, } from './schemas/context';
|
|
3
|
+
export { ReturnValueTestProps, returnValueTestSchema, } from './schemas/return-value-test';
|
|
@@ -1,34 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { z } from 'zod';
|
|
4
|
-
import { CONTEXT_PARAM_PREFIX, CONTEXT_PARAM_REGEXP,
|
|
5
|
-
// TODO consider moving this
|
|
6
|
-
USER_ADDRESS_PARAM_EXTERNAL_EIP4361, } from './const';
|
|
7
|
-
export const contextParamSchema = z.string().regex(CONTEXT_PARAM_REGEXP);
|
|
8
|
-
// We want to discriminate between ContextParams and plain strings
|
|
9
|
-
// If a string starts with `:`, it's a ContextParam
|
|
10
|
-
export const plainStringSchema = z.string().refine((str) => {
|
|
11
|
-
return !str.startsWith(CONTEXT_PARAM_PREFIX);
|
|
12
|
-
}, {
|
|
13
|
-
message: 'String must not be a context parameter i.e. not start with ":"',
|
|
14
|
-
});
|
|
15
|
-
const paramSchema = z.union([plainStringSchema, z.boolean(), z.number()]);
|
|
16
|
-
export const paramOrContextParamSchema = z.union([
|
|
17
|
-
paramSchema,
|
|
18
|
-
contextParamSchema,
|
|
19
|
-
z.lazy(() => z.array(paramOrContextParamSchema)),
|
|
20
|
-
]);
|
|
21
|
-
export const returnValueTestSchema = z.object({
|
|
22
|
-
index: z.number().int().nonnegative().optional(),
|
|
23
|
-
comparator: z.enum(['==', '>', '<', '>=', '<=', '!=']),
|
|
24
|
-
value: paramOrContextParamSchema,
|
|
25
|
-
});
|
|
26
|
-
const UserAddressSchema = z.enum([
|
|
27
|
-
USER_ADDRESS_PARAM_DEFAULT,
|
|
28
|
-
USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
|
|
29
|
-
]);
|
|
30
|
-
export const EthAddressOrUserAddressSchema = z.union([
|
|
31
|
-
EthAddressSchema,
|
|
32
|
-
UserAddressSchema,
|
|
33
|
-
]);
|
|
1
|
+
export { contextParamSchema, paramOrContextParamSchema, } from './schemas/context';
|
|
2
|
+
export { returnValueTestSchema, } from './schemas/return-value-test';
|
|
34
3
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/conditions/shared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/conditions/shared.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEL,qBAAqB,GACtB,MAAM,6BAA6B,CAAC"}
|
package/dist/es/dkg.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ 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, domain: Domain, 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, feeModel: string, accessController: string, waitUntilEnd?: boolean): Promise<number | undefined>;
|
|
24
24
|
private static waitUntilRitualEnd;
|
|
25
25
|
static getRitual(provider: ethers.providers.Provider, domain: Domain, ritualId: number): Promise<DkgRitual>;
|
|
26
26
|
static getActiveRitual(provider: ethers.providers.Provider, domain: Domain, ritualId: number): Promise<DkgRitual>;
|
package/dist/es/dkg.js
CHANGED
|
@@ -37,9 +37,9 @@ export class DkgRitual {
|
|
|
37
37
|
}
|
|
38
38
|
const ERR_RITUAL_NOT_FINALIZED = (ritualId, ritual) => `Ritual ${ritualId} is not finalized. State: ${ritual.state}`;
|
|
39
39
|
export class DkgClient {
|
|
40
|
-
static async initializeRitual(provider, signer, domain, ursulas, authority, duration, accessController, waitUntilEnd = false) {
|
|
40
|
+
static async initializeRitual(provider, signer, domain, ursulas, authority, duration, feeModel, accessController, waitUntilEnd = false) {
|
|
41
41
|
const ritualId = await DkgCoordinatorAgent.initializeRitual(provider, signer, domain, ursulas.sort(), // Contract call requires sorted addresses
|
|
42
|
-
authority, duration, accessController);
|
|
42
|
+
authority, duration, feeModel, accessController);
|
|
43
43
|
if (waitUntilEnd) {
|
|
44
44
|
const isSuccessful = await DkgClient.waitUntilRitualEnd(provider, domain, ritualId);
|
|
45
45
|
if (!isSuccessful) {
|
package/dist/es/dkg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dkg.js","sourceRoot":"","sources":["../../src/dkg.ts"],"names":[],"mappings":"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"}
|
|
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,5 +1,4 @@
|
|
|
1
1
|
export { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
|
|
2
|
-
export { Domain, domains, fromBytes,
|
|
2
|
+
export { Domain, domains, fromBytes, getPorterUris, initialize, toBytes, toHexString, } from '@nucypher/shared';
|
|
3
3
|
export * as conditions from './conditions';
|
|
4
|
-
export { decrypt, encrypt, encryptWithPublicKey
|
|
5
|
-
export { EIP4361AuthProvider, SingleSignOnEIP4361AuthProvider, } from '@nucypher/taco-auth';
|
|
4
|
+
export { decrypt, encrypt, encryptWithPublicKey } from './taco';
|
package/dist/es/index.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
|
|
2
|
-
export { domains, fromBytes,
|
|
2
|
+
export { domains, fromBytes, getPorterUris, initialize, toBytes, toHexString, } from '@nucypher/shared';
|
|
3
3
|
export * as conditions from './conditions';
|
|
4
|
-
|
|
5
|
-
export { decrypt, encrypt, encryptWithPublicKey, isAuthorized } from './taco';
|
|
6
|
-
// TODO: Remove this re-export once `@nucypher/taco-auth` is mature and published
|
|
7
|
-
export { EIP4361AuthProvider, SingleSignOnEIP4361AuthProvider, } from '@nucypher/taco-auth';
|
|
4
|
+
export { decrypt, encrypt, encryptWithPublicKey } from './taco';
|
|
8
5
|
//# 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;AAC5E,OAAO,EAEL,OAAO,EACP,SAAS,EACT,
|
|
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,EAEL,OAAO,EACP,SAAS,EACT,aAAa,EACb,UAAU,EACV,OAAO,EACP,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/es/taco.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
|
|
2
|
-
import {
|
|
3
|
-
import { EIP4361AuthProvider } from '@nucypher/taco-auth';
|
|
2
|
+
import { Domain } from '@nucypher/shared';
|
|
4
3
|
import { ethers } from 'ethers';
|
|
5
4
|
import { Condition } from './conditions/condition';
|
|
6
|
-
import {
|
|
5
|
+
import { ConditionContext } from './conditions/context';
|
|
7
6
|
/**
|
|
8
7
|
* Encrypts a message under given conditions using a public key from an active DKG ritual.
|
|
9
8
|
*
|
|
@@ -50,30 +49,13 @@ export declare const encryptWithPublicKey: (message: Uint8Array | string, condit
|
|
|
50
49
|
* @param {Domain} domain - Represents the logical network in which the decryption will be performed.
|
|
51
50
|
* Must match the `ritualId`.
|
|
52
51
|
* @param {ThresholdMessageKit} messageKit - The kit containing the message to be decrypted
|
|
53
|
-
* @param
|
|
54
|
-
* @param {string} [
|
|
52
|
+
* @param {ConditionContext} context - Optional context data used for decryption time values for the condition(s) within the `messageKit`.
|
|
53
|
+
* @param {string[]} [porterUris] - Optional URI(s) for the Porter service. If not provided, a value will be obtained
|
|
55
54
|
* from the Domain
|
|
56
|
-
* @param {Record<string, CustomContextParam>} [customParameters] - Optional custom parameters that may be required
|
|
57
|
-
* depending on the condition used
|
|
58
55
|
*
|
|
59
56
|
* @returns {Promise<Uint8Array>} Returns Promise that resolves with a decrypted message
|
|
60
57
|
*
|
|
61
58
|
* @throws {Error} If the active DKG Ritual cannot be retrieved or decryption process throws an error,
|
|
62
59
|
* an error is thrown.
|
|
63
60
|
*/
|
|
64
|
-
export declare const decrypt: (provider: ethers.providers.Provider, domain: Domain, messageKit: ThresholdMessageKit,
|
|
65
|
-
/**
|
|
66
|
-
* Checks if the encryption from the provided messageKit is authorized for the specified ritual.
|
|
67
|
-
*
|
|
68
|
-
* @export
|
|
69
|
-
* @param {ethers.providers.Provider} provider - Instance of ethers provider which is used to interact with
|
|
70
|
-
* your selected network.
|
|
71
|
-
* @param {Domain} domain - The domain which was used to encrypt the network. Must match the `ritualId`.
|
|
72
|
-
* @param {ThresholdMessageKit} messageKit - The encrypted message kit to be checked.
|
|
73
|
-
* @param {number} ritualId - The ID of the DKG Ritual under which the messageKit was supposedly encrypted.
|
|
74
|
-
*
|
|
75
|
-
* @returns {Promise<boolean>} Returns a Promise that resolves with the authorization status.
|
|
76
|
-
* True if authorized, false otherwise
|
|
77
|
-
*/
|
|
78
|
-
export declare const isAuthorized: (provider: ethers.providers.Provider, domain: Domain, messageKit: ThresholdMessageKit, ritualId: number) => Promise<boolean>;
|
|
79
|
-
export declare const registerEncrypters: (provider: ethers.providers.Provider, signer: ethers.Signer, domain: Domain, ritualId: number, encrypters: ChecksumAddress[]) => Promise<void>;
|
|
61
|
+
export declare const decrypt: (provider: ethers.providers.Provider, domain: Domain, messageKit: ThresholdMessageKit, context?: ConditionContext, porterUris?: string[]) => Promise<Uint8Array>;
|
package/dist/es/taco.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { AccessControlPolicy, encryptForDkg, ThresholdMessageKit, } from '@nucypher/nucypher-core';
|
|
2
|
-
import { DkgCoordinatorAgent, fromHexString,
|
|
3
|
-
import { EIP4361_AUTH_METHOD, } from '@nucypher/taco-auth';
|
|
2
|
+
import { DkgCoordinatorAgent, fromHexString, getPorterUris, PorterClient, toBytes, } from '@nucypher/shared';
|
|
4
3
|
import { keccak256 } from 'ethers/lib/utils';
|
|
5
4
|
import { ConditionExpression } from './conditions/condition-expr';
|
|
6
5
|
import { DkgClient } from './dkg';
|
|
@@ -76,45 +75,21 @@ export const encryptWithPublicKey = async (message, condition, dkgPublicKey, aut
|
|
|
76
75
|
* @param {Domain} domain - Represents the logical network in which the decryption will be performed.
|
|
77
76
|
* Must match the `ritualId`.
|
|
78
77
|
* @param {ThresholdMessageKit} messageKit - The kit containing the message to be decrypted
|
|
79
|
-
* @param
|
|
80
|
-
* @param {string} [
|
|
78
|
+
* @param {ConditionContext} context - Optional context data used for decryption time values for the condition(s) within the `messageKit`.
|
|
79
|
+
* @param {string[]} [porterUris] - Optional URI(s) for the Porter service. If not provided, a value will be obtained
|
|
81
80
|
* from the Domain
|
|
82
|
-
* @param {Record<string, CustomContextParam>} [customParameters] - Optional custom parameters that may be required
|
|
83
|
-
* depending on the condition used
|
|
84
81
|
*
|
|
85
82
|
* @returns {Promise<Uint8Array>} Returns Promise that resolves with a decrypted message
|
|
86
83
|
*
|
|
87
84
|
* @throws {Error} If the active DKG Ritual cannot be retrieved or decryption process throws an error,
|
|
88
85
|
* an error is thrown.
|
|
89
86
|
*/
|
|
90
|
-
export const decrypt = async (provider, domain, messageKit,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
export const decrypt = async (provider, domain, messageKit, context, porterUris) => {
|
|
88
|
+
const porterUrisFull = porterUris
|
|
89
|
+
? porterUris
|
|
90
|
+
: await getPorterUris(domain);
|
|
91
|
+
const porter = new PorterClient(porterUrisFull);
|
|
94
92
|
const ritualId = await DkgCoordinatorAgent.getRitualIdFromPublicKey(provider, domain, messageKit.acp.publicKey);
|
|
95
|
-
|
|
96
|
-
const authProviders = authProvider
|
|
97
|
-
? {
|
|
98
|
-
[EIP4361_AUTH_METHOD]: authProvider,
|
|
99
|
-
}
|
|
100
|
-
: {};
|
|
101
|
-
return retrieveAndDecrypt(provider, domain, porterUri, messageKit, ritualId, ritual.sharesNum, ritual.threshold, authProviders, customParameters);
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Checks if the encryption from the provided messageKit is authorized for the specified ritual.
|
|
105
|
-
*
|
|
106
|
-
* @export
|
|
107
|
-
* @param {ethers.providers.Provider} provider - Instance of ethers provider which is used to interact with
|
|
108
|
-
* your selected network.
|
|
109
|
-
* @param {Domain} domain - The domain which was used to encrypt the network. Must match the `ritualId`.
|
|
110
|
-
* @param {ThresholdMessageKit} messageKit - The encrypted message kit to be checked.
|
|
111
|
-
* @param {number} ritualId - The ID of the DKG Ritual under which the messageKit was supposedly encrypted.
|
|
112
|
-
*
|
|
113
|
-
* @returns {Promise<boolean>} Returns a Promise that resolves with the authorization status.
|
|
114
|
-
* True if authorized, false otherwise
|
|
115
|
-
*/
|
|
116
|
-
export const isAuthorized = async (provider, domain, messageKit, ritualId) => DkgCoordinatorAgent.isEncryptionAuthorized(provider, domain, ritualId, messageKit);
|
|
117
|
-
export const registerEncrypters = async (provider, signer, domain, ritualId, encrypters) => {
|
|
118
|
-
await GlobalAllowListAgent.registerEncrypters(provider, signer, domain, ritualId, encrypters);
|
|
93
|
+
return retrieveAndDecrypt(provider, domain, porter, messageKit, ritualId, context);
|
|
119
94
|
};
|
|
120
95
|
//# 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":"AAAA,OAAO,EACL,mBAAmB,EAEnB,aAAa,EACb,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EAEnB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,OAAO,GACR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,QAAmC,EACnC,MAAc,EACd,OAA4B,EAC5B,SAAoB,EACpB,QAAgB,EAChB,UAAyB,EACK,EAAE;IAChC,2CAA2C;IAC3C,gCAAgC;IAChC,iDAAiD;IACjD,gBAAgB;IAChB,mCAAmC;IACnC,WAAW;IACX,OAAO;IACP,IAAI;IACJ,gCAAgC;IAChC,2EAA2E;IAC3E,+CAA+C;IAC/C,IAAI;IACJ,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE9E,OAAO,MAAM,oBAAoB,CAC/B,OAAO,EACP,SAAS,EACT,SAAS,CAAC,YAAY,EACtB,UAAU,CACX,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAA4B,EAC5B,SAAoB,EACpB,YAA0B,EAC1B,UAAyB,EACK,EAAE;IAChC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEzD,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,GAAG,aAAa,CACnD,OAAO,EACP,YAAY,EACZ,aAAa,CAAC,eAAe,EAAE,CAChC,CAAC;IAEF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,IAAI,mBAAmB,CACjC,iBAAiB,EACjB,aAAa,CAAC,aAAa,CAAC,CAC7B,CAAC;IAEF,OAAO,IAAI,mBAAmB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,QAAmC,EACnC,MAAc,EACd,UAA+B,EAC/B,OAA0B,EAC1B,UAAqB,EACA,EAAE;IACvB,MAAM,cAAc,GAAa,UAAU;QACzC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,wBAAwB,CACjE,QAAQ,EACR,MAAM,EACN,UAAU,CAAC,GAAG,CAAC,SAAS,CACzB,CAAC;IACF,OAAO,kBAAkB,CACvB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,UAAU,EACV,QAAQ,EACR,OAAO,CACR,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/es/tdec.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
|
|
2
|
-
import { Domain } from '@nucypher/shared';
|
|
3
|
-
import { AuthProviders } from '@nucypher/taco-auth';
|
|
2
|
+
import { Domain, PorterClient } from '@nucypher/shared';
|
|
4
3
|
import { ethers } from 'ethers';
|
|
5
4
|
import { ConditionExpression } from './conditions/condition-expr';
|
|
6
|
-
import {
|
|
5
|
+
import { ConditionContext } from './conditions/context';
|
|
7
6
|
export declare const encryptMessage: (plaintext: Uint8Array | string, encryptingKey: DkgPublicKey, conditions: ConditionExpression, authSigner: ethers.Signer) => Promise<ThresholdMessageKit>;
|
|
8
|
-
export declare const retrieveAndDecrypt: (provider: ethers.providers.Provider, domain: Domain,
|
|
7
|
+
export declare const retrieveAndDecrypt: (provider: ethers.providers.Provider, domain: Domain, porter: PorterClient, thresholdMessageKit: ThresholdMessageKit, ritualId: number, context?: ConditionContext) => Promise<Uint8Array>;
|
package/dist/es/tdec.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AccessControlPolicy, combineDecryptionSharesSimple, DecryptionShareSimple, encryptForDkg, FerveoVariant, SessionStaticSecret, ThresholdDecryptionRequest, ThresholdMessageKit, } from '@nucypher/nucypher-core';
|
|
2
|
-
import { DkgCoordinatorAgent,
|
|
2
|
+
import { DkgCoordinatorAgent, toBytes, } from '@nucypher/shared';
|
|
3
3
|
import { arrayify, keccak256 } from 'ethers/lib/utils';
|
|
4
4
|
import { ConditionContext } from './conditions/context';
|
|
5
|
+
import { DkgClient } from './dkg';
|
|
5
6
|
const ERR_DECRYPTION_FAILED = (errors) => `Threshold of responses not met; TACo decryption failed with errors: ${JSON.stringify(errors)}`;
|
|
6
7
|
const ERR_RITUAL_ID_MISMATCH = (expectedRitualId, ritualIds) => `Ritual id mismatch. Expected ${expectedRitualId}, got ${ritualIds}`;
|
|
7
8
|
export const encryptMessage = async (plaintext, encryptingKey, conditions, authSigner) => {
|
|
@@ -12,19 +13,21 @@ export const encryptMessage = async (plaintext, encryptingKey, conditions, authS
|
|
|
12
13
|
return new ThresholdMessageKit(ciphertext, acp);
|
|
13
14
|
};
|
|
14
15
|
// Retrieve and decrypt ciphertext using provider and condition expression
|
|
15
|
-
export const retrieveAndDecrypt = async (provider, domain,
|
|
16
|
-
const decryptionShares = await retrieve(provider, domain,
|
|
16
|
+
export const retrieveAndDecrypt = async (provider, domain, porter, thresholdMessageKit, ritualId, context) => {
|
|
17
|
+
const decryptionShares = await retrieve(provider, domain, porter, thresholdMessageKit, ritualId, context);
|
|
17
18
|
const sharedSecret = combineDecryptionSharesSimple(decryptionShares);
|
|
18
19
|
return thresholdMessageKit.decryptWithSharedSecret(sharedSecret);
|
|
19
20
|
};
|
|
20
21
|
// Retrieve decryption shares
|
|
21
|
-
const retrieve = async (provider, domain,
|
|
22
|
-
const
|
|
23
|
-
const
|
|
22
|
+
const retrieve = async (provider, domain, porter, thresholdMessageKit, ritualId, context) => {
|
|
23
|
+
const ritual = await DkgClient.getActiveRitual(provider, domain, ritualId);
|
|
24
|
+
const dkgParticipants = await DkgCoordinatorAgent.getParticipants(provider, domain, ritualId, ritual.sharesNum);
|
|
25
|
+
const conditionContext = context
|
|
26
|
+
? context
|
|
27
|
+
: ConditionContext.fromMessageKit(thresholdMessageKit);
|
|
24
28
|
const { sharedSecrets, encryptedRequests } = await makeDecryptionRequests(ritualId, conditionContext, dkgParticipants, thresholdMessageKit);
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
if (Object.keys(encryptedResponses).length < threshold) {
|
|
29
|
+
const { encryptedResponses, errors } = await porter.tacoDecrypt(encryptedRequests, ritual.threshold);
|
|
30
|
+
if (Object.keys(encryptedResponses).length < ritual.threshold) {
|
|
28
31
|
throw new Error(ERR_DECRYPTION_FAILED(errors));
|
|
29
32
|
}
|
|
30
33
|
return makeDecryptionShares(encryptedResponses, sharedSecrets, ritualId);
|
package/dist/es/tdec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tdec.js","sourceRoot":"","sources":["../../src/tdec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,qBAAqB,EAIrB,aAAa,EACb,aAAa,EAEb,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,
|
|
1
|
+
{"version":3,"file":"tdec.js","sourceRoot":"","sources":["../../src/tdec.ts"],"names":[],"mappings":"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"}
|