@aztec/foundation 0.64.0 → 0.65.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 (78) hide show
  1. package/dest/abi/abi.d.ts +9 -9
  2. package/dest/abi/abi.js +2 -2
  3. package/dest/abi/event_selector.d.ts +2 -4
  4. package/dest/abi/event_selector.d.ts.map +1 -1
  5. package/dest/abi/event_selector.js +6 -5
  6. package/dest/abi/function_selector.d.ts +2 -4
  7. package/dest/abi/function_selector.d.ts.map +1 -1
  8. package/dest/abi/function_selector.js +6 -5
  9. package/dest/abi/note_selector.d.ts +2 -5
  10. package/dest/abi/note_selector.d.ts.map +1 -1
  11. package/dest/abi/note_selector.js +5 -7
  12. package/dest/abi/selector.d.ts.map +1 -1
  13. package/dest/abi/selector.js +3 -2
  14. package/dest/aztec-address/index.d.ts +2 -4
  15. package/dest/aztec-address/index.d.ts.map +1 -1
  16. package/dest/aztec-address/index.js +6 -5
  17. package/dest/buffer/buffer32.d.ts +2 -12
  18. package/dest/buffer/buffer32.d.ts.map +1 -1
  19. package/dest/buffer/buffer32.js +3 -16
  20. package/dest/config/env_var.d.ts +1 -1
  21. package/dest/config/env_var.d.ts.map +1 -1
  22. package/dest/crypto/poseidon/index.d.ts +1 -0
  23. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  24. package/dest/crypto/poseidon/index.js +7 -1
  25. package/dest/eth-address/index.d.ts +2 -9
  26. package/dest/eth-address/index.d.ts.map +1 -1
  27. package/dest/eth-address/index.js +7 -12
  28. package/dest/eth-signature/eth_signature.d.ts +5 -3
  29. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  30. package/dest/eth-signature/eth_signature.js +18 -9
  31. package/dest/fields/fields.d.ts +4 -8
  32. package/dest/fields/fields.d.ts.map +1 -1
  33. package/dest/fields/fields.js +10 -10
  34. package/dest/fields/point.d.ts +6 -4
  35. package/dest/fields/point.d.ts.map +1 -1
  36. package/dest/fields/point.js +14 -6
  37. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  38. package/dest/json-rpc/client/fetch.js +20 -14
  39. package/dest/json-rpc/convert.d.ts.map +1 -1
  40. package/dest/json-rpc/convert.js +5 -2
  41. package/dest/json-rpc/index.d.ts +1 -1
  42. package/dest/json-rpc/index.d.ts.map +1 -1
  43. package/dest/json-rpc/index.js +2 -2
  44. package/dest/noir/noir_package_config.d.ts +2 -2
  45. package/dest/schemas/schemas.d.ts +24 -43
  46. package/dest/schemas/schemas.d.ts.map +1 -1
  47. package/dest/schemas/schemas.js +29 -48
  48. package/dest/schemas/utils.d.ts +18 -7
  49. package/dest/schemas/utils.d.ts.map +1 -1
  50. package/dest/schemas/utils.js +20 -8
  51. package/dest/serialize/type_registry.d.ts.map +1 -1
  52. package/dest/serialize/type_registry.js +29 -2
  53. package/dest/string/index.d.ts +1 -0
  54. package/dest/string/index.d.ts.map +1 -1
  55. package/dest/string/index.js +4 -1
  56. package/dest/testing/test_data.js +2 -2
  57. package/package.json +2 -2
  58. package/src/abi/abi.ts +1 -1
  59. package/src/abi/event_selector.ts +6 -4
  60. package/src/abi/function_selector.ts +6 -4
  61. package/src/abi/note_selector.ts +4 -6
  62. package/src/abi/selector.ts +2 -1
  63. package/src/aztec-address/index.ts +6 -4
  64. package/src/buffer/buffer32.ts +3 -17
  65. package/src/config/env_var.ts +1 -0
  66. package/src/crypto/poseidon/index.ts +11 -0
  67. package/src/eth-address/index.ts +6 -11
  68. package/src/eth-signature/eth_signature.ts +20 -9
  69. package/src/fields/fields.ts +11 -9
  70. package/src/fields/point.ts +15 -5
  71. package/src/json-rpc/client/fetch.ts +18 -13
  72. package/src/json-rpc/convert.ts +3 -1
  73. package/src/json-rpc/index.ts +1 -1
  74. package/src/schemas/schemas.ts +28 -51
  75. package/src/schemas/utils.ts +29 -10
  76. package/src/serialize/type_registry.ts +33 -1
  77. package/src/string/index.ts +4 -0
  78. package/src/testing/test_data.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/json-rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/json-rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,2 +1,2 @@
1
- export { jsonStringify } from './convert.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvanNvbi1ycGMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQyJ9
1
+ export { jsonStringify, jsonParseWithSchema, tryJsonStringify } from './convert.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvanNvbi1ycGMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQyJ9
@@ -40,8 +40,8 @@ declare const noirPackageConfigSchema: z.ZodObject<{
40
40
  license?: string | undefined;
41
41
  }, {
42
42
  type?: "lib" | "contract" | "bin" | undefined;
43
- name?: string | undefined;
44
43
  description?: string | undefined;
44
+ name?: string | undefined;
45
45
  entry?: string | undefined;
46
46
  authors?: string[] | undefined;
47
47
  compiler_version?: string | undefined;
@@ -88,8 +88,8 @@ declare const noirPackageConfigSchema: z.ZodObject<{
88
88
  }, {
89
89
  package: {
90
90
  type?: "lib" | "contract" | "bin" | undefined;
91
- name?: string | undefined;
92
91
  description?: string | undefined;
92
+ name?: string | undefined;
93
93
  entry?: string | undefined;
94
94
  authors?: string[] | undefined;
95
95
  compiler_version?: string | undefined;
@@ -8,56 +8,37 @@ import { NoteSelector } from '../abi/note_selector.js';
8
8
  import { AztecAddress } from '../aztec-address/index.js';
9
9
  import { Buffer32 } from '../buffer/buffer32.js';
10
10
  import { EthAddress } from '../eth-address/index.js';
11
- import { Signature } from '../eth-signature/eth_signature.js';
12
11
  import { Fq, Fr } from '../fields/fields.js';
13
12
  import { Point } from '../fields/point.js';
14
13
  import { type ZodFor } from './types.js';
15
14
  /** Validation schemas for common types. Every schema must match its toJSON. */
16
15
  export declare const schemas: {
17
- /** Accepts both a 0x string and a structured `{ type: EthAddress, value: '0x...' }` */
18
- EthAddress: ZodFor<EthAddress>;
19
- /** Accepts both a 0x string and a structured `{ type: AztecAddress, value: '0x...' }` */
20
- AztecAddress: ZodFor<AztecAddress>;
21
- /** Accepts both a 0x string and a structured type. */
22
- FunctionSelector: ZodFor<FunctionSelector>;
23
- /** Accepts both a 0x string and a structured type. */
24
- NoteSelector: ZodFor<NoteSelector>;
25
- /** Accepts both a 0x string and a structured type. */
26
- EventSelector: ZodFor<EventSelector>;
27
- /** Field element. Accepts a 0x prefixed hex string or a structured type. */
28
- Fr: ZodFor<Fr>;
29
- /** Field element. Accepts a 0x prefixed hex string or a structured type. */
30
- Fq: ZodFor<Fq>;
31
- /** Point. Serialized as 0x prefixed string or a type. */
32
- Point: z.ZodEffects<z.ZodUnion<[z.ZodObject<{
33
- x: ZodFor<Fr>;
34
- y: ZodFor<Fr>;
35
- isInfinite: z.ZodOptional<z.ZodBoolean>;
36
- }, "strip", z.ZodTypeAny, {
37
- x: Fr;
38
- y: Fr;
39
- isInfinite?: boolean | undefined;
40
- }, {
41
- x?: any;
42
- y?: any;
43
- isInfinite?: boolean | undefined;
44
- }>, z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>]>, Point, string | {
45
- x?: any;
46
- y?: any;
47
- isInfinite?: boolean | undefined;
48
- }>;
49
- /** Accepts a 0x string */
50
- Signature: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, Signature, string>;
51
- /** Coerces any input to bigint */
16
+ /** Accepts a hex string. */
17
+ EthAddress: z.ZodType<EthAddress, any, string>;
18
+ /** Accepts a hex string. */
19
+ AztecAddress: z.ZodType<AztecAddress, any, string>;
20
+ /** Accepts a hex string. */
21
+ FunctionSelector: z.ZodType<FunctionSelector, any, string>;
22
+ /** Accepts a hex string. */
23
+ NoteSelector: z.ZodType<NoteSelector, any, string>;
24
+ /** Accepts a hex string. */
25
+ EventSelector: z.ZodType<EventSelector, any, string>;
26
+ /** Accepts a hex string. */
27
+ Fr: z.ZodType<Fr, any, string>;
28
+ /** Accepts a hex string. */
29
+ Fq: z.ZodType<Fq, any, string>;
30
+ /** Point. Serialized as a hex string. */
31
+ Point: z.ZodType<Point, any, string>;
32
+ /** Coerces any input to bigint. */
52
33
  BigInt: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
53
- /** Coerces any input to integer number */
34
+ /** Coerces any input to integer number. */
54
35
  Integer: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
55
- /** Coerces input to UInt32 */
36
+ /** Coerces input to UInt32. */
56
37
  UInt32: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
57
- /** Accepts a hex string as a Buffer32 type */
38
+ /** Accepts a hex string as a Buffer32 type. */
58
39
  Buffer32: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer32, string>;
59
- /** Accepts a base64 string or a structured `{ type: 'Buffer', data: [byte, byte...] }` as a buffer */
60
- BufferB64: z.ZodUnion<[z.ZodEffects<z.ZodString, Buffer, string>, z.ZodEffects<z.ZodObject<{
40
+ /** Accepts a base64 string or an object `{ type: 'Buffer', data: [byte, byte...] }` as a buffer. */
41
+ Buffer: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
61
42
  type: z.ZodLiteral<"Buffer">;
62
43
  data: z.ZodArray<z.ZodNumber, "many">;
63
44
  }, "strip", z.ZodTypeAny, {
@@ -70,9 +51,9 @@ export declare const schemas: {
70
51
  type: "Buffer";
71
52
  data: number[];
72
53
  }>]>;
73
- /** Accepts a hex string with optional 0x prefix as a buffer */
54
+ /** Accepts a hex string as a buffer. */
74
55
  BufferHex: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer, string>;
75
- /** Hex string with an optional 0x prefix, which gets removed as part of the parsing */
56
+ /** Hex string with an optional 0x prefix which gets removed as part of the parsing. */
76
57
  HexString: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
77
58
  };
78
59
  export declare const AbiDecodedSchema: ZodFor<AbiDecoded>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/schemas.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAMzC,+EAA+E;AAC/E,eAAO,MAAM,OAAO;IAClB,uFAAuF;;IAGvF,yFAAyF;;IAGzF,sDAAsD;;IAGtD,sDAAsD;;IAGtD,sDAAsD;;IAGtD,4EAA4E;;IAG5E,4EAA4E;;IAG5E,yDAAyD;;;;;;;;;;;;;;;;;;IAYzD,0BAA0B;;IAO1B,kCAAkC;;IAGlC,0CAA0C;;IAG1C,8BAA8B;;IAS9B,8CAA8C;;IAG9C,sGAAsG;;;;;;;;;;;;;;IActG,+DAA+D;;IAO/D,uFAAuF;;CAExF,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAM9C,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/schemas.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,+EAA+E;AAC/E,eAAO,MAAM,OAAO;IAClB,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;IAG5B,4BAA4B;;IAG5B,yCAAyC;;IAGzC,mCAAmC;;IAGnC,2CAA2C;;IAG3C,+BAA+B;;IAS/B,+CAA+C;;IAG/C,oGAAoG;;;;;;;;;;;;;;IAWpG,wCAAwC;;IAOxC,uFAAuF;;CAExF,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAM9C,CAAC"}
@@ -5,76 +5,57 @@ import { NoteSelector } from '../abi/note_selector.js';
5
5
  import { AztecAddress } from '../aztec-address/index.js';
6
6
  import { Buffer32 } from '../buffer/buffer32.js';
7
7
  import { EthAddress } from '../eth-address/index.js';
8
- import { Signature } from '../eth-signature/eth_signature.js';
9
8
  import { Fq, Fr } from '../fields/fields.js';
10
9
  import { Point } from '../fields/point.js';
11
- import { hasHexPrefix, isHex, withoutHexPrefix } from '../string/index.js';
12
- import { hexSchema, maybeStructuredStringSchemaFor } from './utils.js';
13
- const FrSchema = maybeStructuredStringSchemaFor('Fr', Fr, isHex);
14
- const FqSchema = maybeStructuredStringSchemaFor('Fq', Fq, isHex);
10
+ import { isHex, withoutHexPrefix } from '../string/index.js';
11
+ import { bufferSchema, hexSchema } from './utils.js';
15
12
  /** Validation schemas for common types. Every schema must match its toJSON. */
16
13
  export const schemas = {
17
- /** Accepts both a 0x string and a structured `{ type: EthAddress, value: '0x...' }` */
18
- EthAddress: maybeStructuredStringSchemaFor('EthAddress', EthAddress, EthAddress.isAddress),
19
- /** Accepts both a 0x string and a structured `{ type: AztecAddress, value: '0x...' }` */
20
- AztecAddress: maybeStructuredStringSchemaFor('AztecAddress', AztecAddress, AztecAddress.isAddress),
21
- /** Accepts both a 0x string and a structured type. */
22
- FunctionSelector: maybeStructuredStringSchemaFor('FunctionSelector', FunctionSelector),
23
- /** Accepts both a 0x string and a structured type. */
24
- NoteSelector: maybeStructuredStringSchemaFor('NoteSelector', NoteSelector),
25
- /** Accepts both a 0x string and a structured type. */
26
- EventSelector: maybeStructuredStringSchemaFor('EventSelector', EventSelector),
27
- /** Field element. Accepts a 0x prefixed hex string or a structured type. */
28
- Fr: FrSchema,
29
- /** Field element. Accepts a 0x prefixed hex string or a structured type. */
30
- Fq: FqSchema,
31
- /** Point. Serialized as 0x prefixed string or a type. */
32
- Point: z
33
- .object({
34
- x: FrSchema,
35
- y: FrSchema,
36
- isInfinite: z.boolean().optional(),
37
- })
38
- .or(hexSchema)
39
- .transform(value => typeof value === 'string' ? Point.fromString(value) : new Point(value.x, value.y, value.isInfinite ?? false)),
40
- /** Accepts a 0x string */
41
- Signature: z
42
- .string()
43
- .refine(hasHexPrefix, 'No hex prefix')
44
- .refine(Signature.isValid0xString, 'Not a valid Ethereum signature')
45
- .transform(Signature.from0xString),
46
- /** Coerces any input to bigint */
14
+ /** Accepts a hex string. */
15
+ EthAddress: EthAddress.schema,
16
+ /** Accepts a hex string. */
17
+ AztecAddress: AztecAddress.schema,
18
+ /** Accepts a hex string. */
19
+ FunctionSelector: FunctionSelector.schema,
20
+ /** Accepts a hex string. */
21
+ NoteSelector: NoteSelector.schema,
22
+ /** Accepts a hex string. */
23
+ EventSelector: EventSelector.schema,
24
+ /** Accepts a hex string. */
25
+ Fr: Fr.schema,
26
+ /** Accepts a hex string. */
27
+ Fq: Fq.schema,
28
+ /** Point. Serialized as a hex string. */
29
+ Point: Point.schema,
30
+ /** Coerces any input to bigint. */
47
31
  BigInt: z.union([z.bigint(), z.number(), z.string()]).pipe(z.coerce.bigint()),
48
- /** Coerces any input to integer number */
32
+ /** Coerces any input to integer number. */
49
33
  Integer: z.union([z.bigint(), z.number(), z.string()]).pipe(z.coerce.number().int()),
50
- /** Coerces input to UInt32 */
34
+ /** Coerces input to UInt32. */
51
35
  UInt32: z.union([z.bigint(), z.number(), z.string()]).pipe(z.coerce
52
36
  .number()
53
37
  .int()
54
38
  .min(0)
55
39
  .max(2 ** 32 - 1)),
56
- /** Accepts a hex string as a Buffer32 type */
40
+ /** Accepts a hex string as a Buffer32 type. */
57
41
  Buffer32: z.string().refine(isHex, 'Not a valid hex string').transform(Buffer32.fromString),
58
- /** Accepts a base64 string or a structured `{ type: 'Buffer', data: [byte, byte...] }` as a buffer */
59
- BufferB64: z.union([
60
- z
61
- .string()
62
- .base64()
63
- .transform(data => Buffer.from(data, 'base64')),
42
+ /** Accepts a base64 string or an object `{ type: 'Buffer', data: [byte, byte...] }` as a buffer. */
43
+ Buffer: z.union([
44
+ bufferSchema,
64
45
  z
65
46
  .object({
66
47
  type: z.literal('Buffer'),
67
- data: z.array(z.number().int().max(255)),
48
+ data: z.array(z.number().int().min(0).max(255)),
68
49
  })
69
50
  .transform(({ data }) => Buffer.from(data)),
70
51
  ]),
71
- /** Accepts a hex string with optional 0x prefix as a buffer */
52
+ /** Accepts a hex string as a buffer. */
72
53
  BufferHex: z
73
54
  .string()
74
55
  .refine(isHex, 'Not a valid hex string')
75
56
  .transform(withoutHexPrefix)
76
57
  .transform(data => Buffer.from(data, 'hex')),
77
- /** Hex string with an optional 0x prefix, which gets removed as part of the parsing */
58
+ /** Hex string with an optional 0x prefix which gets removed as part of the parsing. */
78
59
  HexString: hexSchema,
79
60
  };
80
61
  export const AbiDecodedSchema = z.union([
@@ -84,4 +65,4 @@ export const AbiDecodedSchema = z.union([
84
65
  z.array(z.lazy(() => AbiDecodedSchema)),
85
66
  z.record(z.lazy(() => AbiDecodedSchema)),
86
67
  ]);
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3NjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUd4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdkUsTUFBTSxRQUFRLEdBQUcsOEJBQThCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNqRSxNQUFNLFFBQVEsR0FBRyw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRWpFLCtFQUErRTtBQUMvRSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsdUZBQXVGO0lBQ3ZGLFVBQVUsRUFBRSw4QkFBOEIsQ0FBQyxZQUFZLEVB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
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3NjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUd4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyRCwrRUFBK0U7QUFDL0UsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLDRCQUE0QjtJQUM1QixVQUFVLEVBQUUsVUFBVSxDQUFDLE1BQU07SUFFN0IsNEJBQTRCO0lBQzVCLFlBQVksRUFBRSxZQUFZLENBQUMsTUFBTTtJQUVqQyw0QkFBNEI7SUFDNUIsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtJQUV6Qyw0QkFBNEI7SUFDNUIsWUFBWSxFQUFFLFlBQVksQ0FBQyxNQUFNO0lBRWpDLDRCQUE0QjtJQUM1QixhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU07SUFFbkMsNEJBQTRCO0lB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
@@ -3,6 +3,8 @@
3
3
  import { type ParseInput, type ParseReturnType, ZodOptional, type ZodType, type ZodTypeAny, z } from 'zod';
4
4
  import { type ZodFor } from './types.js';
5
5
  export declare const hexSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
6
+ /** Schema for a buffer represented as a base64 string. */
7
+ export declare const bufferSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>;
6
8
  export declare class ZodNullableOptional<T extends ZodTypeAny> extends ZodOptional<T> {
7
9
  _isNullableOptional: boolean;
8
10
  _parse(input: ParseInput): ParseReturnType<this['_output']>;
@@ -14,6 +16,9 @@ export declare class ZodNullableOptional<T extends ZodTypeAny> extends ZodOption
14
16
  * need to convert nulls to undefineds as we parse.
15
17
  */
16
18
  export declare function optional<T extends ZodTypeAny>(schema: T): ZodNullableOptional<T>;
19
+ type ToJsonIs<T, TRet> = T extends {
20
+ toJSON(): TRet;
21
+ } ? T : never;
17
22
  /**
18
23
  * Creates a schema that accepts a hex string and uses it to hydrate an instance.
19
24
  * @param klazz - Class that implements either fromString or fromBuffer.
@@ -23,18 +28,24 @@ export declare function hexSchemaFor<TClass extends {
23
28
  fromString(str: string): any;
24
29
  } | {
25
30
  fromBuffer(buf: Buffer): any;
26
- }>(klazz: TClass): ZodType<TClass extends {
31
+ }>(klazz: TClass, refinement?: (input: string) => boolean): ZodType<TClass extends {
27
32
  fromString(str: string): infer TInstance;
28
33
  } | {
29
34
  fromBuffer(buf: Buffer): infer TInstance;
30
- } ? TInstance : never, any, string>;
31
- export declare function maybeStructuredStringSchemaFor<TClass extends {
32
- fromString(str: string): any;
33
- }>(name: string, klazz: TClass, refinement?: (input: string) => boolean): ZodFor<TClass extends {
34
- fromString(str: string): infer TInstance;
35
- } ? TInstance : never>;
35
+ } ? ToJsonIs<TInstance, string> : never, any, string>;
36
+ /**
37
+ * Creates a schema that accepts a base64 string and uses it to hydrate an instance.
38
+ * @param klazz - Class that implements fromBuffer.
39
+ * @returns A schema for the class.
40
+ */
41
+ export declare function bufferSchemaFor<TClass extends {
42
+ fromBuffer(buf: Buffer): any;
43
+ }>(klazz: TClass): ZodType<TClass extends {
44
+ fromBuffer(buf: Buffer): infer TInstance;
45
+ } ? ToJsonIs<TInstance, Buffer> : never, any, string>;
36
46
  /** Creates a schema for a js Map type that matches the serialization used in jsonStringify. */
37
47
  export declare function mapSchema<TKey, TValue>(key: ZodFor<TKey>, value: ZodFor<TValue>): ZodFor<Map<TKey, TValue>>;
38
48
  /** Creates a schema for a js Set type that matches the serialization used in jsonStringify. */
39
49
  export declare function setSchema<T>(value: ZodFor<T>): ZodFor<Set<T>>;
50
+ export {};
40
51
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/schemas/utils.ts"],"names":[],"mappings":";;AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,eAAe,EAEpB,WAAW,EAEX,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,CAAC,EACF,MAAM,KAAK,CAAC;AAGb,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,SAAS,yEAAiF,CAAC;AAExG,qBAAa,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC3E,mBAAmB,UAAQ;IAElB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;WAQpD,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;CAM9E;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,0BAEvD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7G,KAAK,EAAE,MAAM,GACZ,OAAO,CACR,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GACtG,SAAS,GACT,KAAK,EACT,GAAG,EACH,MAAM,CACP,CAIA;AAGD,wBAAgB,8BAA8B,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5F,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GACtC,MAAM,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GAAG,SAAS,GAAG,KAAK,CAAC,CAKzF;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAE3G;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAE7D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/schemas/utils.ts"],"names":[],"mappings":";;AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,eAAe,EAEpB,WAAW,EAEX,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,CAAC,EACF,MAAM,KAAK,CAAC;AAGb,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,SAAS,yEAAiF,CAAC;AAKxG,0DAA0D;AAC1D,eAAO,MAAM,YAAY,yEAKwB,CAAC;AAElD,qBAAa,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC3E,mBAAmB,UAAQ;IAElB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;WAQpD,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;CAM9E;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,0BAEvD;AAED,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS;IAAE,MAAM,IAAI,IAAI,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7G,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GACtC,OAAO,CACR,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GACtG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,GAC3B,KAAK,EACT,GAAG,EACH,MAAM,CACP,CAMA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7E,KAAK,EAAE,MAAM,GACZ,OAAO,CACR,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,KAAK,EACjG,GAAG,EACH,MAAM,CACP,CAEA;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAE3G;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAE7D"}
@@ -1,6 +1,15 @@
1
1
  import { OK, ZodFirstPartyTypeKind, ZodOptional, ZodParsedType, z, } from 'zod';
2
2
  import { isHex, withoutHexPrefix } from '../string/index.js';
3
3
  export const hexSchema = z.string().refine(isHex, 'Not a valid hex string').transform(withoutHexPrefix);
4
+ // Copied from zod internals, which was copied from https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript
5
+ const base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
6
+ /** Schema for a buffer represented as a base64 string. */
7
+ export const bufferSchema = z
8
+ .string()
9
+ // We only test the str for base64 if it's shorter than 1024 bytes, otherwise we've run into maximum
10
+ // stack size exceeded errors when trying to validate excessively long strings (such as contract bytecode).
11
+ .refine(str => str.length > 1024 || base64Regex.test(str), 'Not a valid base64 string')
12
+ .transform(data => Buffer.from(data, 'base64'));
4
13
  export class ZodNullableOptional extends ZodOptional {
5
14
  constructor() {
6
15
  super(...arguments);
@@ -33,17 +42,20 @@ export function optional(schema) {
33
42
  * @param klazz - Class that implements either fromString or fromBuffer.
34
43
  * @returns A schema for the class.
35
44
  */
36
- export function hexSchemaFor(klazz) {
45
+ export function hexSchemaFor(klazz, refinement) {
46
+ const stringSchema = refinement ? z.string().refine(refinement, `Not a valid instance`) : z.string();
47
+ const hexSchema = stringSchema.refine(isHex, 'Not a valid hex string').transform(withoutHexPrefix);
37
48
  return 'fromString' in klazz
38
49
  ? hexSchema.transform(klazz.fromString.bind(klazz))
39
50
  : hexSchema.transform(str => Buffer.from(str, 'hex')).transform(klazz.fromBuffer.bind(klazz));
40
51
  }
41
- // TODO(palla/schemas): Delete this class once all serialization of the type { type: string, value: string } are removed.
42
- export function maybeStructuredStringSchemaFor(name, klazz, refinement) {
43
- const stringSchema = refinement ? z.string().refine(refinement, `Not a valid ${name}`) : z.string();
44
- return z
45
- .union([stringSchema, z.object({ type: z.literal(name), value: stringSchema })])
46
- .transform(input => klazz.fromString(typeof input === 'string' ? input : input.value));
52
+ /**
53
+ * Creates a schema that accepts a base64 string and uses it to hydrate an instance.
54
+ * @param klazz - Class that implements fromBuffer.
55
+ * @returns A schema for the class.
56
+ */
57
+ export function bufferSchemaFor(klazz) {
58
+ return bufferSchema.transform(klazz.fromBuffer.bind(klazz));
47
59
  }
48
60
  /** Creates a schema for a js Map type that matches the serialization used in jsonStringify. */
49
61
  export function mapSchema(key, value) {
@@ -53,4 +65,4 @@ export function mapSchema(key, value) {
53
65
  export function setSchema(value) {
54
66
  return z.array(value).transform(entries => new Set(entries));
55
67
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsRUFBRSxFQUdGLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsYUFBYSxFQUdiLENBQUMsR0FDRixNQUFNLEtBQUssQ0FBQztBQUViLE9BQU8sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUV4RyxNQUFNLE9BQU8sbUJBQTBDLFNBQVEsV0FBYztJQUE3RTs7UUFDRSx3QkFBbUIsR0FBRyxJQUFJLENBQUM7SUFnQjdCLENBQUM7SUFkVSxNQUFNLENBQUMsS0FBaUI7UUFDL0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLFVBQVUsS0FBSyxhQUFhLENBQUMsU0FBUyxJQUFJLFVBQVUsS0FBSyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEYsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQVUsTUFBTSxDQUF1QixJQUFPO1FBQ2xELE9BQU8sSUFBSSxtQkFBbUIsQ0FBQztZQUM3QixTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxXQUFXO1NBQzVDLENBQVEsQ0FBQztJQUNaLENBQUM7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUF1QixNQUFTO0lBQ3RELE9BQU8sbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsS0FBYTtJQVFiLE9BQU8sWUFBWSxJQUFJLEtBQUs7UUFDMUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2xHLENBQUM7QUFFRCx5SEFBeUg7QUFDekgsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxJQUFZLEVBQ1osS0FBYSxFQUNiLFVBQXVDO0lBRXZDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEcsT0FBTyxDQUFDO1NBQ0wsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQy9FLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUM7QUFFRCwrRkFBK0Y7QUFDL0YsTUFBTSxVQUFVLFNBQVMsQ0FBZSxHQUFpQixFQUFFLEtBQXFCO0lBQzlFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRCwrRkFBK0Y7QUFDL0YsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUFnQjtJQUMzQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUMvRCxDQUFDIn0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsRUFBRSxFQUdGLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsYUFBYSxFQUdiLENBQUMsR0FDRixNQUFNLEtBQUssQ0FBQztBQUViLE9BQU8sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc3RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUV4RyxpSkFBaUo7QUFDakosTUFBTSxXQUFXLEdBQUcsa0VBQWtFLENBQUM7QUFFdkYsMERBQTBEO0FBQzFELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDO0tBQzFCLE1BQU0sRUFBRTtJQUNULG9HQUFvRztJQUNwRywyR0FBMkc7S0FDMUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSwyQkFBMkIsQ0FBQztLQUN0RixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBRWxELE1BQU0sT0FBTyxtQkFBMEMsU0FBUSxXQUFjO0lBQTdFOztRQUNFLHdCQUFtQixHQUFHLElBQUksQ0FBQztJQWdCN0IsQ0FBQztJQWRVLE1BQU0sQ0FBQyxLQUFpQjtRQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksVUFBVSxLQUFLLGFBQWEsQ0FBQyxTQUFTLElBQUksVUFBVSxLQUFLLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoRixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELE1BQU0sQ0FBVSxNQUFNLENBQXVCLElBQU87UUFDbEQsT0FBTyxJQUFJLG1CQUFtQixDQUFDO1lBQzdCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLHFCQUFxQixDQUFDLFdBQVc7U0FDNUMsQ0FBUSxDQUFDO0lBQ1osQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQXVCLE1BQVM7SUFDdEQsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUlEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUMxQixLQUFhLEVBQ2IsVUFBdUM7SUFRdkMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckcsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuRyxPQUFPLFlBQVksSUFBSSxLQUFLO1FBQzFCLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNsRyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLEtBQWE7SUFNYixPQUFPLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQsK0ZBQStGO0FBQy9GLE1BQU0sVUFBVSxTQUFTLENBQWUsR0FBaUIsRUFBRSxLQUFxQjtJQUM5RSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQsK0ZBQStGO0FBQy9GLE1BQU0sVUFBVSxTQUFTLENBQUksS0FBZ0I7SUFDM0MsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDL0QsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"type_registry.d.ts","sourceRoot":"","sources":["../../src/serialize/type_registry.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0C;WAEnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,IAAI;WAI7D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;CAG3E;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAE1C;AAGD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAW9C"}
1
+ {"version":3,"file":"type_registry.d.ts","sourceRoot":"","sources":["../../src/serialize/type_registry.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0C;WAEnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,IAAI;WAI7D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;CAG3E;AAmBD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAgB1C;AAGD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAW9C"}
@@ -1,3 +1,4 @@
1
+ import { mapValues } from '../collection/object.js';
1
2
  /**
2
3
  * Register a class here that has a toJSON method that returns:
3
4
  * ```
@@ -18,9 +19,35 @@ export class TypeRegistry {
18
19
  }
19
20
  }
20
21
  TypeRegistry.registry = new Map();
22
+ function replace(value) {
23
+ if (value &&
24
+ typeof value === 'object' &&
25
+ 'toString' in value &&
26
+ TypeRegistry.getConstructor(value.constructor.name)) {
27
+ return {
28
+ type: value.constructor.name,
29
+ value: value.toString(),
30
+ };
31
+ }
32
+ return value;
33
+ }
21
34
  // Resolver function that enables JSON serialization of BigInts.
22
35
  export function resolver(_, value) {
23
- return typeof value === 'bigint' ? value.toString() + 'n' : value;
36
+ if (typeof value === 'bigint') {
37
+ return value.toString() + 'n';
38
+ }
39
+ if (typeof value === 'object' && value) {
40
+ if (Array.isArray(value)) {
41
+ return value.map(replace);
42
+ }
43
+ else if (Buffer.isBuffer(value)) {
44
+ return { type: 'buffer', value: value.toString('hex') };
45
+ }
46
+ else {
47
+ return mapValues(value, replace);
48
+ }
49
+ }
50
+ return value;
24
51
  }
25
52
  // Reviver function that uses TypeRegistry to instantiate objects.
26
53
  export function reviver(key, value) {
@@ -35,4 +62,4 @@ export function reviver(key, value) {
35
62
  }
36
63
  return value;
37
64
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZV9yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemUvdHlwZV9yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFHaEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFdBQTJCO1FBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFnQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O0FBUmMscUJBQVEsR0FBZ0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQVduRSxnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQUFNLEVBQUUsS0FBVTtJQUN6QyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3BFLENBQUM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBVTtJQUM3QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxJQUFJLEtBQUssSUFBSSxPQUFPLElBQUksS0FBSyxFQUFFLENBQUM7UUFDOUUsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIn0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZV9yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemUvdHlwZV9yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJcEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBR2hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0IsRUFBRSxXQUEyQjtRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBZ0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDOztBQVJjLHFCQUFRLEdBQWdDLElBQUksR0FBRyxFQUFFLENBQUM7QUFXbkUsU0FBUyxPQUFPLENBQUksS0FBUTtJQUMxQixJQUNFLEtBQUs7UUFDTCxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLFVBQVUsSUFBSSxLQUFLO1FBQ25CLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFDbkQsQ0FBQztRQUNELE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJO1lBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO1NBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsZ0VBQWdFO0FBQ2hFLE1BQU0sVUFBVSxRQUFRLENBQUMsQ0FBTSxFQUFFLEtBQVU7SUFDekMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3ZDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELGtFQUFrRTtBQUNsRSxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFVO0lBQzdDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUM5RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMifQ==
@@ -4,6 +4,7 @@ export declare function hasHexPrefix(str: string): str is `0x${string}`;
4
4
  export declare function withoutHexPrefix(str: string): string;
5
5
  export declare function isHex(str: string): boolean;
6
6
  export declare function hexToBuffer(str: string): Buffer;
7
+ export declare function bufferToHex(buffer: Buffer): `0x${string}`;
7
8
  export declare function pluralize(str: string, count: number | bigint, plural?: string): string;
8
9
  export declare function count(count: number | bigint, str: string, plural?: string): string;
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/string/index.ts"],"names":[],"mappings":";;AAAA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,KAAK,MAAM,EAAE,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAElF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/string/index.ts"],"names":[],"mappings":";;AAAA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,KAAK,MAAM,EAAE,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAEzD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAElF"}
@@ -10,10 +10,13 @@ export function isHex(str) {
10
10
  export function hexToBuffer(str) {
11
11
  return Buffer.from(withoutHexPrefix(str), 'hex');
12
12
  }
13
+ export function bufferToHex(buffer) {
14
+ return `0x${buffer.toString('hex')}`;
15
+ }
13
16
  export function pluralize(str, count, plural) {
14
17
  return count === 1 || count === 1n ? str : plural ?? `${str}s`;
15
18
  }
16
19
  export function count(count, str, plural) {
17
20
  return `${count} ${pluralize(str, count, plural)}`;
18
21
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RyaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBVztJQUN0QyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFXO0lBQzFDLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsR0FBVztJQUMvQixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBc0IsRUFBRSxNQUFlO0lBQzVFLE9BQU8sS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQXNCLEVBQUUsR0FBVyxFQUFFLE1BQWU7SUFDeEUsT0FBTyxHQUFHLEtBQUssSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO0FBQ3JELENBQUMifQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RyaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBVztJQUN0QyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFXO0lBQzFDLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsR0FBVztJQUMvQixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFjO0lBQ3hDLE9BQU8sS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQXNCLEVBQUUsTUFBZTtJQUM1RSxPQUFPLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFzQixFQUFFLEdBQVcsRUFBRSxNQUFlO0lBQ3hFLE9BQU8sR0FBRyxLQUFLLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUNyRCxDQUFDIn0=
@@ -55,7 +55,7 @@ export function updateInlineTestData(targetFileFromRepoRoot, itemName, value) {
55
55
  const logger = createConsoleLogger('aztec:testing:test_data');
56
56
  const targetFile = getPathToFile(targetFileFromRepoRoot);
57
57
  const contents = readFileSync(targetFile, 'utf8').toString();
58
- const regex = new RegExp(`let ${itemName} = [\\s\\S]*?;`, 'g');
58
+ const regex = new RegExp(`let ${itemName} =[\\s\\S]*?;`, 'g');
59
59
  if (!regex.exec(contents)) {
60
60
  throw new Error(`Test data marker for ${itemName} not found in ${targetFile}`);
61
61
  }
@@ -70,4 +70,4 @@ function getPathToFile(targetFileFromRepoRoot) {
70
70
  }
71
71
  return join(repoRoot, targetFileFromRepoRoot);
72
72
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvdGVzdF9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE1BQU0sUUFBUSxHQUFpQyxFQUFFLENBQUM7QUFFbEQsc0RBQXNEO0FBQ3RELE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsSUFBSSxFQUFFLENBQUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDN0csQ0FBQztBQUVELHFGQUFxRjtBQUNyRixNQUFNLFVBQVUsWUFBWSxDQUFJLFFBQWdCLEVBQUUsSUFBTztJQUN2RCxJQUFJLENBQUMseUJBQXlCLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDbkQsTUFBTSxZQUFZLEdBQUcsR0FBRyxRQUFRLElBQUksUUFBUSxFQUFFLENBQUM7SUFFL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFD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
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvdGVzdF9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE1BQU0sUUFBUSxHQUFpQyxFQUFFLENBQUM7QUFFbEQsc0RBQXNEO0FBQ3RELE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsSUFBSSxFQUFFLENBQUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDN0csQ0FBQztBQUVELHFGQUFxRjtBQUNyRixNQUFNLFVBQVUsWUFBWSxDQUFJLFFBQWdCLEVBQUUsSUFBTztJQUN2RCxJQUFJLENBQUMseUJBQXlCLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDbkQsTUFBTSxZQUFZLEdBQUcsR0FBRyxRQUFRLElBQUksUUFBUSxFQUFFLENBQUM7SUFFL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/foundation",
3
- "version": "0.64.0",
3
+ "version": "0.65.1",
4
4
  "packageManager": "yarn@3.4.1",
5
5
  "type": "module",
6
6
  "main": "./dest/index.js",
@@ -98,7 +98,7 @@
98
98
  ]
99
99
  },
100
100
  "dependencies": {
101
- "@aztec/bb.js": "0.64.0",
101
+ "@aztec/bb.js": "0.65.1",
102
102
  "@koa/cors": "^5.0.0",
103
103
  "@noble/curves": "^1.2.0",
104
104
  "bn.js": "^5.2.1",
package/src/abi/abi.ts CHANGED
@@ -230,7 +230,7 @@ export interface FunctionArtifact extends FunctionAbi {
230
230
 
231
231
  export const FunctionArtifactSchema = FunctionAbiSchema.and(
232
232
  z.object({
233
- bytecode: schemas.BufferB64,
233
+ bytecode: schemas.Buffer,
234
234
  verificationKey: z.string().optional(),
235
235
  debugSymbols: z.string(),
236
236
  debug: FunctionDebugMetadataSchema.optional(),
@@ -1,6 +1,7 @@
1
1
  import { fromHex, toBigIntBE } from '../bigint-buffer/index.js';
2
2
  import { poseidon2HashBytes, randomBytes } from '../crypto/index.js';
3
3
  import { type Fr } from '../fields/fields.js';
4
+ import { hexSchemaFor } from '../schemas/utils.js';
4
5
  import { BufferReader } from '../serialize/buffer_reader.js';
5
6
  import { Selector } from './selector.js';
6
7
 
@@ -83,9 +84,10 @@ export class EventSelector extends Selector {
83
84
  }
84
85
 
85
86
  toJSON() {
86
- return {
87
- type: 'EventSelector',
88
- value: this.toString(),
89
- };
87
+ return this.toString();
88
+ }
89
+
90
+ static get schema() {
91
+ return hexSchemaFor(EventSelector);
90
92
  }
91
93
  }
@@ -1,6 +1,7 @@
1
1
  import { fromHex, toBigIntBE } from '../bigint-buffer/index.js';
2
2
  import { poseidon2HashBytes, randomBytes } from '../crypto/index.js';
3
3
  import { type Fr } from '../fields/fields.js';
4
+ import { hexSchemaFor } from '../schemas/utils.js';
4
5
  import { BufferReader } from '../serialize/buffer_reader.js';
5
6
  import { FieldReader } from '../serialize/field_reader.js';
6
7
  import { TypeRegistry } from '../serialize/type_registry.js';
@@ -132,10 +133,11 @@ export class FunctionSelector extends Selector {
132
133
  }
133
134
 
134
135
  toJSON() {
135
- return {
136
- type: 'FunctionSelector',
137
- value: this.toString(),
138
- };
136
+ return this.toString();
137
+ }
138
+
139
+ static get schema() {
140
+ return hexSchemaFor(FunctionSelector);
139
141
  }
140
142
  }
141
143
 
@@ -1,6 +1,7 @@
1
1
  import { toBigIntBE } from '../bigint-buffer/index.js';
2
2
  import { randomBytes } from '../crypto/index.js';
3
3
  import { type Fr } from '../fields/fields.js';
4
+ import { hexSchemaFor } from '../schemas/utils.js';
4
5
  import { BufferReader } from '../serialize/buffer_reader.js';
5
6
  import { TypeRegistry } from '../serialize/type_registry.js';
6
7
  import { Selector } from './selector.js';
@@ -58,14 +59,11 @@ export class NoteSelector extends Selector {
58
59
  }
59
60
 
60
61
  toJSON() {
61
- return {
62
- type: 'NoteSelector',
63
- value: this.toString(),
64
- };
62
+ return this.toString();
65
63
  }
66
64
 
67
- static fromJSON(json: any): NoteSelector {
68
- return NoteSelector.fromString(json.value);
65
+ static get schema() {
66
+ return hexSchemaFor(NoteSelector);
69
67
  }
70
68
  }
71
69