@nucypher/taco 0.7.0-alpha.0 → 0.7.0-alpha.1

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.
Files changed (63) hide show
  1. package/dist/cjs/conditions/base/ecdsa.d.ts +7 -0
  2. package/dist/cjs/conditions/base/ecdsa.js +21 -0
  3. package/dist/cjs/conditions/base/ecdsa.js.map +1 -0
  4. package/dist/cjs/conditions/base/index.d.ts +1 -0
  5. package/dist/cjs/conditions/base/index.js +2 -1
  6. package/dist/cjs/conditions/base/index.js.map +1 -1
  7. package/dist/cjs/conditions/condition-factory.js +3 -0
  8. package/dist/cjs/conditions/condition-factory.js.map +1 -1
  9. package/dist/cjs/conditions/schemas/common.d.ts +1 -0
  10. package/dist/cjs/conditions/schemas/common.js +5 -1
  11. package/dist/cjs/conditions/schemas/common.js.map +1 -1
  12. package/dist/cjs/conditions/schemas/contract.d.ts +12 -12
  13. package/dist/cjs/conditions/schemas/ecdsa.d.ts +38 -0
  14. package/dist/cjs/conditions/schemas/ecdsa.js +40 -0
  15. package/dist/cjs/conditions/schemas/ecdsa.js.map +1 -0
  16. package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.d.ts +1 -0
  17. package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.js +1 -0
  18. package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.js.map +1 -1
  19. package/dist/cjs/conditions/schemas/rpc.d.ts +4 -4
  20. package/dist/cjs/conditions/schemas/sequential.js +31 -11
  21. package/dist/cjs/conditions/schemas/sequential.js.map +1 -1
  22. package/dist/cjs/conditions/schemas/time.d.ts +2 -2
  23. package/dist/cjs/conditions/schemas/utils.js +2 -0
  24. package/dist/cjs/conditions/schemas/utils.js.map +1 -1
  25. package/dist/cjs/index.d.ts +1 -1
  26. package/dist/cjs/index.js +2 -1
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/sign.d.ts +2 -0
  29. package/dist/cjs/sign.js +11 -0
  30. package/dist/cjs/sign.js.map +1 -1
  31. package/dist/es/conditions/base/ecdsa.d.ts +7 -0
  32. package/dist/es/conditions/base/ecdsa.js +12 -0
  33. package/dist/es/conditions/base/ecdsa.js.map +1 -0
  34. package/dist/es/conditions/base/index.d.ts +1 -0
  35. package/dist/es/conditions/base/index.js +1 -0
  36. package/dist/es/conditions/base/index.js.map +1 -1
  37. package/dist/es/conditions/condition-factory.js +3 -0
  38. package/dist/es/conditions/condition-factory.js.map +1 -1
  39. package/dist/es/conditions/schemas/common.d.ts +1 -0
  40. package/dist/es/conditions/schemas/common.js +4 -0
  41. package/dist/es/conditions/schemas/common.js.map +1 -1
  42. package/dist/es/conditions/schemas/contract.d.ts +12 -12
  43. package/dist/es/conditions/schemas/ecdsa.d.ts +38 -0
  44. package/dist/es/conditions/schemas/ecdsa.js +37 -0
  45. package/dist/es/conditions/schemas/ecdsa.js.map +1 -0
  46. package/dist/es/conditions/schemas/export-for-zod-doc-gen.d.ts +1 -0
  47. package/dist/es/conditions/schemas/export-for-zod-doc-gen.js +1 -0
  48. package/dist/es/conditions/schemas/export-for-zod-doc-gen.js.map +1 -1
  49. package/dist/es/conditions/schemas/rpc.d.ts +4 -4
  50. package/dist/es/conditions/schemas/sequential.js +31 -11
  51. package/dist/es/conditions/schemas/sequential.js.map +1 -1
  52. package/dist/es/conditions/schemas/time.d.ts +2 -2
  53. package/dist/es/conditions/schemas/utils.js +2 -0
  54. package/dist/es/conditions/schemas/utils.js.map +1 -1
  55. package/dist/es/index.d.ts +1 -1
  56. package/dist/es/index.js +1 -1
  57. package/dist/es/index.js.map +1 -1
  58. package/dist/es/sign.d.ts +2 -0
  59. package/dist/es/sign.js +10 -0
  60. package/dist/es/sign.js.map +1 -1
  61. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  62. package/dist/tsconfig.es.tsbuildinfo +1 -1
  63. package/package.json +3 -3
@@ -1,5 +1,6 @@
1
1
  import { AddressAllowlistCondition, AddressAllowlistConditionType, } from './base/address-allowlist';
2
2
  import { ContractCondition, ContractConditionType, } from './base/contract';
3
+ import { ECDSACondition, ECDSAConditionType, } from './base/ecdsa';
3
4
  import { JsonApiCondition, JsonApiConditionType, } from './base/json-api';
4
5
  import { JsonRpcCondition, JsonRpcConditionType, } from './base/json-rpc';
5
6
  import { JWTCondition, JWTConditionType } from './base/jwt';
@@ -20,6 +21,8 @@ export class ConditionFactory {
20
21
  return new TimeCondition(props);
21
22
  case ContractConditionType:
22
23
  return new ContractCondition(props);
24
+ case ECDSAConditionType:
25
+ return new ECDSACondition(props);
23
26
  case JsonApiConditionType:
24
27
  return new JsonApiCondition(props);
25
28
  case JsonRpcConditionType:
@@ -1 +1 @@
1
- {"version":3,"file":"condition-factory.js","sourceRoot":"","sources":["../../../src/conditions/condition-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAEzB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAqB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAqB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EACL,kCAAkC,EAElC,sCAAsC,EACtC,+BAA+B,EAE/B,mCAAmC,GACpC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EAEb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,2BAA2B,IAAI,EAAE,CAAC;AAEpC,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAC,kBAAkB,CAAC,KAAqB;QACpD,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,kBAAkB;YAClB,KAAK,gBAAgB;gBACnB,OAAO,IAAI,YAAY,CAAC,KAA0B,CAAC,CAAC;YACtD,KAAK,iBAAiB;gBACpB,OAAO,IAAI,aAAa,CAAC,KAA2B,CAAC,CAAC;YACxD,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,oBAAoB;gBACvB,OAAO,IAAI,gBAAgB,CAAC,KAA8B,CAAC,CAAC;YAC9D,KAAK,oBAAoB;gBACvB,OAAO,IAAI,gBAAgB,CAAC,KAA8B,CAAC,CAAC;YAC9D,KAAK,gBAAgB;gBACnB,OAAO,IAAI,YAAY,CAAC,KAA0B,CAAC,CAAC;YACtD,KAAK,6BAA6B;gBAChC,OAAO,IAAI,yBAAyB,CAClC,KAAuC,CACxC,CAAC;YACJ,KAAK,mCAAmC;gBACtC,OAAO,IAAI,+BAA+B,CACxC,KAA6C,CAC9C,CAAC;YACJ,KAAK,sCAAsC;gBACzC,OAAO,IAAI,kCAAkC,CAC3C,KAAgD,CACjD,CAAC;YACJ,qBAAqB;YACrB,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,mBAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,mBAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"condition-factory.js","sourceRoot":"","sources":["../../../src/conditions/condition-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAEzB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,cAAc,EAEd,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAEhB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAqB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAqB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EACL,kCAAkC,EAElC,sCAAsC,EACtC,+BAA+B,EAE/B,mCAAmC,GACpC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EAEb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,2BAA2B,IAAI,EAAE,CAAC;AAEpC,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAC,kBAAkB,CAAC,KAAqB;QACpD,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,kBAAkB;YAClB,KAAK,gBAAgB;gBACnB,OAAO,IAAI,YAAY,CAAC,KAA0B,CAAC,CAAC;YACtD,KAAK,iBAAiB;gBACpB,OAAO,IAAI,aAAa,CAAC,KAA2B,CAAC,CAAC;YACxD,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,kBAAkB;gBACrB,OAAO,IAAI,cAAc,CAAC,KAA4B,CAAC,CAAC;YAC1D,KAAK,oBAAoB;gBACvB,OAAO,IAAI,gBAAgB,CAAC,KAA8B,CAAC,CAAC;YAC9D,KAAK,oBAAoB;gBACvB,OAAO,IAAI,gBAAgB,CAAC,KAA8B,CAAC,CAAC;YAC9D,KAAK,gBAAgB;gBACnB,OAAO,IAAI,YAAY,CAAC,KAA0B,CAAC,CAAC;YACtD,KAAK,6BAA6B;gBAChC,OAAO,IAAI,yBAAyB,CAClC,KAAuC,CACxC,CAAC;YACJ,KAAK,mCAAmC;gBACtC,OAAO,IAAI,+BAA+B,CACxC,KAA6C,CAC9C,CAAC;YACJ,KAAK,sCAAsC;gBACzC,OAAO,IAAI,kCAAkC,CAC3C,KAAgD,CACjD,CAAC;YACJ,qBAAqB;YACrB,KAAK,qBAAqB;gBACxB,OAAO,IAAI,iBAAiB,CAAC,KAA+B,CAAC,CAAC;YAChE,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,mBAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,mBAAmB,CAAC,KAAiC,CAAC,CAAC;YACpE;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF"}
@@ -13,3 +13,4 @@ export default createUnionSchema;
13
13
  export declare const jsonPathSchema: z.ZodEffects<z.ZodString, string, string>;
14
14
  export declare const jsonAuthorizationTypeSchema: z.ZodEnum<["Bearer", "Basic", "X-API-Key"]>;
15
15
  export declare const httpsURLSchema: z.ZodEffects<z.ZodString, string, string>;
16
+ export declare const hexStringSchema: z.ZodString;
@@ -76,4 +76,8 @@ export const httpsURLSchema = z
76
76
  .refine((url) => validateHttpsURL(url), {
77
77
  message: 'Invalid URL',
78
78
  });
79
+ export const hexStringSchema = z
80
+ .string()
81
+ .regex(/^[0-9a-fA-F]+$/, 'Invalid hex string')
82
+ .describe('A string containing only hexadecimal characters (0-9, a-f, A-F)');
79
83
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/common.ts"],"names":[],"mappings":"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"}
@@ -324,15 +324,16 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
324
324
  parameters: z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">;
325
325
  }, "strip", z.ZodTypeAny, {
326
326
  conditionType: "contract";
327
- chain: number;
328
327
  method: string;
329
- parameters: any[];
330
328
  returnValueTest: {
331
329
  comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
332
330
  value?: any;
333
331
  index?: number | undefined;
334
332
  };
333
+ parameters: any[];
334
+ chain: number;
335
335
  contractAddress: string;
336
+ standardContractType?: "ERC20" | "ERC721" | undefined;
336
337
  functionAbi?: {
337
338
  type: "function";
338
339
  name: string;
@@ -352,18 +353,18 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
352
353
  }[]];
353
354
  stateMutability: "view" | "pure";
354
355
  } | undefined;
355
- standardContractType?: "ERC20" | "ERC721" | undefined;
356
356
  }, {
357
- chain: number;
358
357
  method: string;
359
- parameters: any[];
360
358
  returnValueTest: {
361
359
  comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
362
360
  value?: any;
363
361
  index?: number | undefined;
364
362
  };
363
+ parameters: any[];
364
+ chain: number;
365
365
  contractAddress: string;
366
366
  conditionType?: "contract" | undefined;
367
+ standardContractType?: "ERC20" | "ERC721" | undefined;
367
368
  functionAbi?: {
368
369
  type: "function";
369
370
  name: string;
@@ -383,18 +384,18 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
383
384
  }[]];
384
385
  stateMutability: "view" | "pure";
385
386
  } | undefined;
386
- standardContractType?: "ERC20" | "ERC721" | undefined;
387
387
  }>, {
388
388
  conditionType: "contract";
389
- chain: number;
390
389
  method: string;
391
- parameters: any[];
392
390
  returnValueTest: {
393
391
  comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
394
392
  value?: any;
395
393
  index?: number | undefined;
396
394
  };
395
+ parameters: any[];
396
+ chain: number;
397
397
  contractAddress: string;
398
+ standardContractType?: "ERC20" | "ERC721" | undefined;
398
399
  functionAbi?: {
399
400
  type: "function";
400
401
  name: string;
@@ -414,18 +415,18 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
414
415
  }[]];
415
416
  stateMutability: "view" | "pure";
416
417
  } | undefined;
417
- standardContractType?: "ERC20" | "ERC721" | undefined;
418
418
  }, {
419
- chain: number;
420
419
  method: string;
421
- parameters: any[];
422
420
  returnValueTest: {
423
421
  comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
424
422
  value?: any;
425
423
  index?: number | undefined;
426
424
  };
425
+ parameters: any[];
426
+ chain: number;
427
427
  contractAddress: string;
428
428
  conditionType?: "contract" | undefined;
429
+ standardContractType?: "ERC20" | "ERC721" | undefined;
429
430
  functionAbi?: {
430
431
  type: "function";
431
432
  name: string;
@@ -445,6 +446,5 @@ export declare const contractConditionSchema: z.ZodEffects<z.ZodObject<{
445
446
  }[]];
446
447
  stateMutability: "view" | "pure";
447
448
  } | undefined;
448
- standardContractType?: "ERC20" | "ERC721" | undefined;
449
449
  }>;
450
450
  export type ContractConditionProps = z.infer<typeof contractConditionSchema>;
@@ -0,0 +1,38 @@
1
+ import { z } from 'zod';
2
+ export declare const ECDSA_MESSAGE_PARAM_DEFAULT = ":message";
3
+ export declare const ECDSA_SIGNATURE_PARAM_DEFAULT = ":signature";
4
+ export declare const ECDSAConditionType = "ecdsa";
5
+ export declare const SUPPORTED_ECDSA_CURVES: readonly ["SECP256k1", "NIST256p", "NIST384p", "NIST521p", "Ed25519", "BRAINPOOLP256r1"];
6
+ export type ECDSACurve = (typeof SUPPORTED_ECDSA_CURVES)[number];
7
+ export declare const ecdsaConditionSchema: z.ZodEffects<z.ZodObject<{} & {
8
+ conditionType: z.ZodDefault<z.ZodLiteral<"ecdsa">>;
9
+ message: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodString]>>;
10
+ signature: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodString]>>;
11
+ verifyingKey: z.ZodString;
12
+ curve: z.ZodEnum<["SECP256k1", "NIST256p", "NIST384p", "NIST521p", "Ed25519", "BRAINPOOLP256r1"]>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ message: string;
15
+ conditionType: "ecdsa";
16
+ signature: string;
17
+ verifyingKey: string;
18
+ curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
19
+ }, {
20
+ verifyingKey: string;
21
+ curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
22
+ message?: string | undefined;
23
+ conditionType?: "ecdsa" | undefined;
24
+ signature?: string | undefined;
25
+ }>, {
26
+ message: string;
27
+ conditionType: "ecdsa";
28
+ signature: string;
29
+ verifyingKey: string;
30
+ curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
31
+ }, {
32
+ verifyingKey: string;
33
+ curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
34
+ message?: string | undefined;
35
+ conditionType?: "ecdsa" | undefined;
36
+ signature?: string | undefined;
37
+ }>;
38
+ export type ECDSAConditionProps = z.infer<typeof ecdsaConditionSchema>;
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ import { baseConditionSchema, hexStringSchema } from './common';
3
+ import { contextParamSchema } from './context';
4
+ export const ECDSA_MESSAGE_PARAM_DEFAULT = ':message';
5
+ export const ECDSA_SIGNATURE_PARAM_DEFAULT = ':signature';
6
+ export const ECDSAConditionType = 'ecdsa';
7
+ export const SUPPORTED_ECDSA_CURVES = [
8
+ 'SECP256k1',
9
+ 'NIST256p',
10
+ 'NIST384p',
11
+ 'NIST521p',
12
+ 'Ed25519',
13
+ 'BRAINPOOLP256r1',
14
+ ];
15
+ export const ecdsaConditionSchema = baseConditionSchema
16
+ .extend({
17
+ conditionType: z.literal(ECDSAConditionType).default(ECDSAConditionType),
18
+ message: z
19
+ .union([z.string(), contextParamSchema])
20
+ .default(ECDSA_MESSAGE_PARAM_DEFAULT),
21
+ signature: z
22
+ .union([hexStringSchema, contextParamSchema])
23
+ .default(ECDSA_SIGNATURE_PARAM_DEFAULT),
24
+ verifyingKey: hexStringSchema,
25
+ curve: z.enum(SUPPORTED_ECDSA_CURVES),
26
+ })
27
+ .refine((data) => {
28
+ // ensure that if message starts with 0x that it is valid hex
29
+ if (data.message.startsWith('0x'))
30
+ return hexStringSchema.safeParse(data.message.slice(2)).success;
31
+ return true;
32
+ }, {
33
+ message: 'Message must be a valid hex string if it starts with "0x"',
34
+ path: ['message'],
35
+ })
36
+ .describe('ECDSA Condition for verifying the authenticity of a message using ECDSA signatures.');
37
+ //# sourceMappingURL=ecdsa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC;AACtD,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,iBAAiB;CACT,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB;KACpD,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACxE,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC;SACvC,OAAO,CAAC,2BAA2B,CAAC;IACvC,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;SAC5C,OAAO,CAAC,6BAA6B,CAAC;IACzC,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;CACtC,CAAC;KACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,6DAA6D;IAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAC/B,OAAO,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,OAAO,EAAE,2DAA2D;IACpE,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CACF;KACA,QAAQ,CACP,qFAAqF,CACtF,CAAC"}
@@ -8,6 +8,7 @@ export * from './common';
8
8
  export * from './context';
9
9
  export * from './compound';
10
10
  export * from './contract';
11
+ export * from './ecdsa';
11
12
  export * from './if-then-else';
12
13
  export * from './json-api';
13
14
  export * from './json-rpc';
@@ -10,6 +10,7 @@ export * from './context';
10
10
  // ts-unused-exports:disable-next-line - this comment line is added to prevent lint from changing or objecting the export order.
11
11
  export * from './compound';
12
12
  export * from './contract';
13
+ export * from './ecdsa';
13
14
  export * from './if-then-else';
14
15
  export * from './json-api';
15
16
  export * from './json-rpc';
@@ -1 +1 @@
1
- {"version":3,"file":"export-for-zod-doc-gen.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/export-for-zod-doc-gen.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,gIAAgI;AAChI,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,gIAAgI;AAChI,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,gIAAgI;AAChI,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"export-for-zod-doc-gen.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/export-for-zod-doc-gen.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,gIAAgI;AAChI,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,gIAAgI;AAChI,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,gIAAgI;AAChI,cAAc,qBAAqB,CAAC"}
@@ -29,23 +29,23 @@ export declare const rpcConditionSchema: z.ZodObject<{} & {
29
29
  }>;
30
30
  }, "strip", z.ZodTypeAny, {
31
31
  conditionType: "rpc";
32
- chain: number;
33
32
  method: "eth_getBalance";
34
- parameters: [string, string | number] | [string];
35
33
  returnValueTest: {
36
34
  comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
37
35
  value?: any;
38
36
  index?: number | undefined;
39
37
  };
40
- }, {
38
+ parameters: [string] | [string, string | number];
41
39
  chain: number;
40
+ }, {
42
41
  method: "eth_getBalance";
43
- parameters: [string, string | number] | [string];
44
42
  returnValueTest: {
45
43
  comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
46
44
  value?: any;
47
45
  index?: number | undefined;
48
46
  };
47
+ parameters: [string] | [string, string | number];
48
+ chain: number;
49
49
  conditionType?: "rpc" | undefined;
50
50
  }>;
51
51
  export type RpcConditionProps = z.infer<typeof rpcConditionSchema>;
@@ -1,7 +1,36 @@
1
1
  import { z } from 'zod';
2
2
  import { maxNestedDepth } from '../multi-condition';
3
3
  import { baseConditionSchema, plainStringSchema } from './common';
4
+ import { CompoundConditionType } from './compound';
5
+ import { IfThenElseConditionType } from './if-then-else';
4
6
  import { anyConditionSchema } from './utils';
7
+ const getAllNestedConditionVariableNames = (condition) => {
8
+ const conditionVariables = [];
9
+ if (condition.conditionType === SequentialConditionType) {
10
+ for (const variable of condition.conditionVariables) {
11
+ conditionVariables.push(variable.varName);
12
+ conditionVariables.push(...getAllNestedConditionVariableNames(variable.condition));
13
+ }
14
+ }
15
+ else if (condition.conditionType === IfThenElseConditionType) {
16
+ conditionVariables.push(...getAllNestedConditionVariableNames(condition.ifCondition));
17
+ conditionVariables.push(...getAllNestedConditionVariableNames(condition.thenCondition));
18
+ if (typeof condition.elseCondition !== 'boolean') {
19
+ conditionVariables.push(...getAllNestedConditionVariableNames(condition.elseCondition));
20
+ }
21
+ }
22
+ else if (condition.conditionType === CompoundConditionType) {
23
+ for (const operand of condition.operands) {
24
+ conditionVariables.push(...getAllNestedConditionVariableNames(operand));
25
+ }
26
+ }
27
+ return conditionVariables;
28
+ };
29
+ const noDuplicateVarNames = (condition) => {
30
+ const allVarNames = getAllNestedConditionVariableNames(condition);
31
+ const duplicates = allVarNames.filter((item, index) => allVarNames.indexOf(item) !== index);
32
+ return duplicates.length === 0;
33
+ };
5
34
  export const SequentialConditionType = 'sequential';
6
35
  export const conditionVariableSchema = z.lazy(() => z.object({
7
36
  varName: plainStringSchema,
@@ -18,17 +47,8 @@ export const sequentialConditionSchema = baseConditionSchema
18
47
  message: 'Exceeded max nested depth of 2 for multi-condition type',
19
48
  path: ['conditionVariables'],
20
49
  })
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
- });
50
+ .refine((condition) => {
51
+ return noDuplicateVarNames(condition);
32
52
  }, {
33
53
  message: 'Duplicate variable names are not allowed',
34
54
  path: ['conditionVariables'],
@@ -1 +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"}
1
+ {"version":3,"file":"sequential.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/sequential.ts"],"names":[],"mappings":"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"}
@@ -29,20 +29,20 @@ export declare const timeConditionSchema: z.ZodObject<{
29
29
  }>;
30
30
  }, "strip", z.ZodTypeAny, {
31
31
  conditionType: "time";
32
- chain: number;
33
32
  method: "blocktime";
34
33
  returnValueTest: {
35
34
  comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
36
35
  value?: any;
37
36
  index?: number | undefined;
38
37
  };
39
- }, {
40
38
  chain: number;
39
+ }, {
41
40
  returnValueTest: {
42
41
  comparator: "==" | ">" | "<" | ">=" | "<=" | "!=" | "in" | "!in";
43
42
  value?: any;
44
43
  index?: number | undefined;
45
44
  };
45
+ chain: number;
46
46
  conditionType?: "time" | undefined;
47
47
  method?: "blocktime" | undefined;
48
48
  }>;
@@ -2,6 +2,7 @@ import { z } from 'zod';
2
2
  import { compoundConditionSchema } from '../compound-condition';
3
3
  import { addressAllowlistConditionSchema } from './address-allowlist';
4
4
  import { contractConditionSchema } from './contract';
5
+ import { ecdsaConditionSchema } from './ecdsa';
5
6
  import { ifThenElseConditionSchema } from './if-then-else';
6
7
  import { jsonApiConditionSchema } from './json-api';
7
8
  import { jsonRpcConditionSchema } from './json-rpc';
@@ -15,6 +16,7 @@ export const anyConditionSchema = z.lazy(() => z.union([
15
16
  timeConditionSchema,
16
17
  addressAllowlistConditionSchema,
17
18
  contractConditionSchema,
19
+ ecdsaConditionSchema,
18
20
  jsonApiConditionSchema,
19
21
  jsonRpcConditionSchema,
20
22
  jwtConditionSchema,
@@ -1 +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,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,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,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,wCAAwC,EACxC,qCAAqC,GACtC,MAAM,WAAW,CAAC;AACnB,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,+BAA+B;IAC/B,uBAAuB;IACvB,sBAAsB;IACtB,sBAAsB;IACtB,kBAAkB;IAClB,qCAAqC;IACrC,wCAAwC;IACxC,uBAAuB;IACvB,yBAAyB;IACzB,yBAAyB;CAC1B,CAAC,CACH,CAAC"}
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,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,wCAAwC,EACxC,qCAAqC,GACtC,MAAM,WAAW,CAAC;AACnB,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,+BAA+B;IAC/B,uBAAuB;IACvB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,kBAAkB;IAClB,qCAAqC;IACrC,wCAAwC;IACxC,uBAAuB;IACvB,yBAAyB;IACzB,yBAAyB;CAC1B,CAAC,CACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
2
2
  export { Domain, domains, fromBytes, getPorterUris, initialize, toBytes, toHexString, } from '@nucypher/shared';
3
3
  export * as conditions from './conditions';
4
- export { signUserOp } from './sign';
4
+ export { setSigningCohortConditions, signUserOp } from './sign';
5
5
  export { decrypt, encrypt, encryptWithPublicKey } from './taco';
package/dist/es/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { DkgPublicKey, ThresholdMessageKit } from '@nucypher/nucypher-core';
2
2
  export { domains, fromBytes, getPorterUris, initialize, toBytes, toHexString, } from '@nucypher/shared';
3
3
  export * as conditions from './conditions';
4
- export { signUserOp } from './sign';
4
+ export { setSigningCohortConditions, signUserOp } from './sign';
5
5
  export { decrypt, encrypt, encryptWithPublicKey } from './taco';
6
6
  //# sourceMappingURL=index.js.map
@@ -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,aAAa,EACb,UAAU,EACV,OAAO,EACP,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,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,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,0BAA0B,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC"}
package/dist/es/sign.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Domain, TacoSignature, UserOperation } from '@nucypher/shared';
2
2
  import { ethers } from 'ethers';
3
+ import { Condition } from './conditions/condition';
3
4
  import { ConditionContext } from './conditions/context';
4
5
  export type SignResult = {
5
6
  messageHash: string;
@@ -22,3 +23,4 @@ export type SignResult = {
22
23
  * @throws An error if the signing process fails due to insufficient signatures or mismatched hashes.
23
24
  */
24
25
  export declare function signUserOp(provider: ethers.providers.Provider, domain: Domain, cohortId: number, chainId: number, userOp: UserOperation, aaVersion: 'mdt' | '0.8.0' | string, context?: ConditionContext, porterUris?: string[]): Promise<SignResult>;
26
+ export declare function setSigningCohortConditions(provider: ethers.providers.JsonRpcProvider, domain: Domain, conditions: Condition, cohortId: number, chainId: number, signer: ethers.Signer): Promise<ethers.ContractTransaction>;
package/dist/es/sign.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { convertUserOperationToPython, fromHexString, getPorterUris, PorterClient, SigningCoordinatorAgent, toBase64, toHexString, UserOperationSignatureRequest, } from '@nucypher/shared';
2
+ import { ethers } from 'ethers';
3
+ import { ConditionExpression } from './conditions/condition-expr';
2
4
  const ERR_INSUFFICIENT_SIGNATURES = (errors) => `Threshold of signatures not met; TACo signing failed with errors: ${JSON.stringify(errors)}`;
3
5
  const ERR_MISMATCHED_HASHES = (hashToSignatures) => `Threshold of signatures not met; multiple mismatched hashes found: ${JSON.stringify(Object.fromEntries(hashToSignatures.entries()))}`;
4
6
  function aggregateSignatures(signaturesByAddress, threshold) {
@@ -82,4 +84,12 @@ export async function signUserOp(provider, domain, cohortId, chainId, userOp, aa
82
84
  signingResults: porterSignResult.signingResults,
83
85
  };
84
86
  }
87
+ export async function setSigningCohortConditions(provider, domain, conditions, cohortId, chainId, signer) {
88
+ // Convert Condition to ConditionExpression, then to JSON, then to bytes
89
+ const conditionExpression = new ConditionExpression(conditions);
90
+ const conditionsJson = conditionExpression.toJson();
91
+ const conditionsBytes = ethers.utils.toUtf8Bytes(conditionsJson);
92
+ // Set conditions on the SigningCoordinator contract
93
+ return await SigningCoordinatorAgent.setSigningCohortConditions(provider, domain, cohortId, chainId, conditionsBytes, signer);
94
+ }
85
95
  //# sourceMappingURL=sign.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/sign.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/sign.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAE5B,aAAa,EACb,aAAa,EACb,YAAY,EACZ,uBAAuB,EAGvB,QAAQ,EACR,WAAW,EAEX,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGlE,MAAM,2BAA2B,GAAG,CAAC,MAAe,EAAE,EAAE,CACtD,qEAAqE,IAAI,CAAC,SAAS,CACjF,MAAM,CACP,EAAE,CAAC;AACN,MAAM,qBAAqB,GAAG,CAC5B,gBAAyE,EACzE,EAAE,CACF,sEAAsE,IAAI,CAAC,SAAS,CAClF,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAC/C,EAAE,CAAC;AAQN,SAAS,mBAAmB,CAC1B,mBAEC,EACD,SAAiB;IAEjB,oIAAoI;IACpI,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;SAClD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,yBAAyB;IACzB,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,KAAK,WAAW,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAmC,EACnC,MAAc,EACd,QAAgB,EAChB,OAAe,EACf,MAAqB,EACrB,SAAmC,EACnC,OAA0B,EAC1B,UAAqB;IAErB,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,OAAO,GAAG,MAAM,uBAAuB,CAAC,eAAe,CAC3D,QAAQ,EACR,MAAM,EACN,QAAQ,CACT,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,YAAY,CAC1D,QAAQ,EACR,MAAM,EACN,QAAQ,CACT,CAAC;IAEF,MAAM,YAAY,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,IAAI,6BAA6B,CACtD,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,OAAO,EACP,OAAO,IAAI,EAAE,EACb,QAAQ,CACT,CAAC;IAEF,MAAM,eAAe,GAA2B,MAAM,CAAC,WAAW,CAChE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ;QACf,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;KACnC,CAAC,CACH,CAAC;IAEF,+CAA+C;IAC/C,MAAM,gBAAgB,GAAmB,MAAM,MAAM,CAAC,UAAU,CAC9D,eAAe,EACf,SAAS,CACV,CAAC;IAEF,MAAM,gBAAgB,GAGlB,IAAI,GAAG,EAAE,CAAC;IAEd,6DAA6D;IAC7D,KAAK,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CACrD,gBAAgB,CAAC,cAAc,CAChC,EAAE,CAAC;QACF,wEAAwE;QACxE,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACzD,CAAC;IAED,IAAI,WAAW,GAAG,SAAS,CAAC;IAC5B,IAAI,qBAAqB,GAAG,SAAS,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAChD,qBAAqB,GAAG,UAAU,CAAC;YACnC,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,CAAC,WAAW,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3C,IACE,gBAAgB,CAAC,IAAI,GAAG,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,EACxE,CAAC;YACD,uBAAuB;YACvB,yFAAyF;YACzF,6EAA6E;YAC7E,6EAA6E;YAC7E,OAAO,CAAC,KAAK,CACX,4CAA4C,EAC5C,gBAAgB,CACjB,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,mBAAmB,CAC7C,qBAAqB,EACrB,SAAS,CACV,CAAC;IAEF,OAAO;QACL,WAAW;QACX,mBAAmB;QACnB,cAAc,EAAE,gBAAgB,CAAC,cAAc;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAA0C,EAC1C,MAAc,EACd,UAAqB,EACrB,QAAgB,EAChB,OAAe,EACf,MAAqB;IAErB,wEAAwE;IACxE,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC;IACpD,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAEjE,oDAAoD;IACpD,OAAO,MAAM,uBAAuB,CAAC,0BAA0B,CAC7D,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,EACP,eAAe,EACf,MAAM,CACP,CAAC;AACJ,CAAC"}