@aztec/foundation 0.16.9 → 0.18.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.
Files changed (50) hide show
  1. package/dest/abi/decoder.d.ts.map +1 -1
  2. package/dest/abi/decoder.js +12 -3
  3. package/dest/abi/encoder.d.ts.map +1 -1
  4. package/dest/abi/encoder.js +30 -7
  5. package/dest/abi/index.d.ts +1 -1
  6. package/dest/abi/index.d.ts.map +1 -1
  7. package/dest/abi/index.js +2 -2
  8. package/dest/abi/selector.d.ts +128 -0
  9. package/dest/abi/selector.d.ts.map +1 -0
  10. package/dest/abi/selector.js +179 -0
  11. package/dest/abi/utils.d.ts +7 -1
  12. package/dest/abi/utils.d.ts.map +1 -1
  13. package/dest/abi/utils.js +13 -5
  14. package/dest/array/array.d.ts +54 -0
  15. package/dest/array/array.d.ts.map +1 -0
  16. package/dest/array/array.js +59 -0
  17. package/dest/array/index.d.ts +2 -0
  18. package/dest/array/index.d.ts.map +1 -0
  19. package/dest/array/index.js +2 -0
  20. package/dest/bigint-buffer/index.d.ts +6 -0
  21. package/dest/bigint-buffer/index.d.ts.map +1 -1
  22. package/dest/bigint-buffer/index.js +13 -1
  23. package/dest/crypto/pedersen/pedersen.wasm.js +3 -3
  24. package/dest/fifo/memory_fifo.d.ts +4 -3
  25. package/dest/fifo/memory_fifo.d.ts.map +1 -1
  26. package/dest/fifo/memory_fifo.js +8 -4
  27. package/dest/fifo/serial_queue.d.ts +1 -1
  28. package/dest/fifo/serial_queue.d.ts.map +1 -1
  29. package/dest/fifo/serial_queue.js +6 -3
  30. package/dest/json-rpc/server/index.d.ts +1 -1
  31. package/dest/json-rpc/server/index.d.ts.map +1 -1
  32. package/dest/json-rpc/server/index.js +2 -2
  33. package/dest/json-rpc/server/json_rpc_server.d.ts +10 -0
  34. package/dest/json-rpc/server/json_rpc_server.d.ts.map +1 -1
  35. package/dest/json-rpc/server/json_rpc_server.js +15 -1
  36. package/dest/serialize/free_funcs.d.ts +7 -119
  37. package/dest/serialize/free_funcs.d.ts.map +1 -1
  38. package/dest/serialize/free_funcs.js +17 -127
  39. package/dest/serialize/index.d.ts +1 -0
  40. package/dest/serialize/index.d.ts.map +1 -1
  41. package/dest/serialize/index.js +2 -1
  42. package/dest/serialize/serialize.d.ts +167 -0
  43. package/dest/serialize/serialize.d.ts.map +1 -0
  44. package/dest/serialize/serialize.js +212 -0
  45. package/dest/trees/index.d.ts +6 -0
  46. package/dest/trees/index.d.ts.map +1 -1
  47. package/package.json +4 -3
  48. package/dest/abi/function_selector.d.ts +0 -83
  49. package/dest/abi/function_selector.d.ts.map +0 -1
  50. package/dest/abi/function_selector.js +0 -124
@@ -1,83 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { BufferReader } from '@aztec/foundation/serialize';
3
- import { Fr } from '../fields/index.js';
4
- import { ABIParameter } from './abi.js';
5
- /**
6
- * A function selector is the first 4 bytes of the hash of a function signature.
7
- */
8
- export declare class FunctionSelector {
9
- value: number;
10
- /**
11
- * The size of the function selector in bytes.
12
- */
13
- static SIZE: number;
14
- constructor(/** number representing the function selector */ value: number);
15
- /**
16
- * Checks if the function selector is empty (all bytes are 0).
17
- * @returns True if the function selector is empty (all bytes are 0).
18
- */
19
- isEmpty(): boolean;
20
- /**
21
- * Serialize as a buffer.
22
- * @param bufferSize - The buffer size.
23
- * @returns The buffer.
24
- */
25
- toBuffer(bufferSize?: number): Buffer;
26
- /**
27
- * Serialize as a hex string.
28
- * @returns The string.
29
- */
30
- toString(): string;
31
- /**
32
- * Checks if this function selector is equal to another.
33
- * @param other - The other function selector.
34
- * @returns True if the function selectors are equal.
35
- */
36
- equals(other: FunctionSelector): boolean;
37
- /**
38
- * Deserializes from a buffer or reader, corresponding to a write in cpp.
39
- * @param buffer - Buffer or BufferReader to read from.
40
- * @returns The FunctionSelector.
41
- */
42
- static fromBuffer(buffer: Buffer | BufferReader): FunctionSelector;
43
- /**
44
- * Returns a new field with the same contents as this EthAddress.
45
- *
46
- * @returns An Fr instance.
47
- */
48
- toField(): Fr;
49
- /**
50
- * Converts a field to function selector.
51
- * @param fr - The field to convert.
52
- * @returns The function selector.
53
- */
54
- static fromField(fr: Fr): FunctionSelector;
55
- /**
56
- * Creates a function selector from a signature.
57
- * @param signature - Signature of the function to generate the selector for (e.g. "transfer(field,field)").
58
- * @returns Function selector.
59
- */
60
- static fromSignature(signature: string): FunctionSelector;
61
- /**
62
- * Creates a function selector for a given function name and parameters.
63
- * @param name - The name of the function.
64
- * @param parameters - An array of ABIParameter objects, each containing the type information of a function parameter.
65
- * @returns A Buffer containing the 4-byte function selector.
66
- */
67
- static fromNameAndParameters(name: string, parameters: ABIParameter[]): FunctionSelector;
68
- /**
69
- * Create an AztecAddress instance from a hex-encoded string.
70
- * The input 'address' should be prefixed with '0x' or not, and have exactly 64 hex characters.
71
- * Throws an error if the input length is invalid or address value is out of range.
72
- *
73
- * @param selector - The hex-encoded string representing the Aztec address.
74
- * @returns An AztecAddress instance.
75
- */
76
- static fromString(selector: string): FunctionSelector;
77
- /**
78
- * Creates an empty function selector.
79
- * @returns An empty function selector.
80
- */
81
- static empty(): FunctionSelector;
82
- }
83
- //# sourceMappingURL=function_selector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"function_selector.d.ts","sourceRoot":"","sources":["../../src/abi/function_selector.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC;;GAEG;AACH,qBAAa,gBAAgB;IAMyC,KAAK,EAAE,MAAM;IALjF;;OAEG;IACH,OAAc,IAAI,SAAK;gBAEX,gDAAgD,CAAQ,KAAK,EAAE,MAAM;IAMjF;;;OAGG;IACI,OAAO,IAAI,OAAO;IAIzB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,SAAwB,GAAG,MAAM;IAIpD;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAIxC;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAMlE;;;;OAIG;IACI,OAAO;IAId;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,gBAAgB;IAI1C;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAQzD;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE;IAQrE;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM;IAQlC;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,gBAAgB;CAGjC"}
@@ -1,124 +0,0 @@
1
- import { toBigIntBE, toBufferBE } from '@aztec/foundation/bigint-buffer';
2
- import { BufferReader } from '@aztec/foundation/serialize';
3
- import { keccak } from '../crypto/keccak/index.js';
4
- import { Fr } from '../fields/index.js';
5
- import { decodeFunctionSignature } from './decoder.js';
6
- /**
7
- * A function selector is the first 4 bytes of the hash of a function signature.
8
- */
9
- export class FunctionSelector {
10
- constructor(/** number representing the function selector */ value) {
11
- this.value = value;
12
- if (value > 2 ** (FunctionSelector.SIZE * 8) - 1) {
13
- throw new Error(`Function selector must fit in ${FunctionSelector.SIZE} bytes.`);
14
- }
15
- }
16
- /**
17
- * Checks if the function selector is empty (all bytes are 0).
18
- * @returns True if the function selector is empty (all bytes are 0).
19
- */
20
- isEmpty() {
21
- return this.value === 0;
22
- }
23
- /**
24
- * Serialize as a buffer.
25
- * @param bufferSize - The buffer size.
26
- * @returns The buffer.
27
- */
28
- toBuffer(bufferSize = FunctionSelector.SIZE) {
29
- return toBufferBE(BigInt(this.value), bufferSize);
30
- }
31
- /**
32
- * Serialize as a hex string.
33
- * @returns The string.
34
- */
35
- toString() {
36
- return this.toBuffer().toString('hex');
37
- }
38
- /**
39
- * Checks if this function selector is equal to another.
40
- * @param other - The other function selector.
41
- * @returns True if the function selectors are equal.
42
- */
43
- equals(other) {
44
- return this.value === other.value;
45
- }
46
- /**
47
- * Deserializes from a buffer or reader, corresponding to a write in cpp.
48
- * @param buffer - Buffer or BufferReader to read from.
49
- * @returns The FunctionSelector.
50
- */
51
- static fromBuffer(buffer) {
52
- const reader = BufferReader.asReader(buffer);
53
- const value = Number(toBigIntBE(reader.readBytes(FunctionSelector.SIZE)));
54
- return new FunctionSelector(value);
55
- }
56
- /**
57
- * Returns a new field with the same contents as this EthAddress.
58
- *
59
- * @returns An Fr instance.
60
- */
61
- toField() {
62
- return new Fr(BigInt(this.value));
63
- }
64
- /**
65
- * Converts a field to function selector.
66
- * @param fr - The field to convert.
67
- * @returns The function selector.
68
- */
69
- static fromField(fr) {
70
- return new FunctionSelector(Number(fr.toBigInt()));
71
- }
72
- /**
73
- * Creates a function selector from a signature.
74
- * @param signature - Signature of the function to generate the selector for (e.g. "transfer(field,field)").
75
- * @returns Function selector.
76
- */
77
- static fromSignature(signature) {
78
- // throw if signature contains whitespace
79
- if (/\s/.test(signature)) {
80
- throw new Error('Function Signature cannot contain whitespace');
81
- }
82
- return FunctionSelector.fromBuffer(keccak(Buffer.from(signature)).subarray(0, FunctionSelector.SIZE));
83
- }
84
- /**
85
- * Creates a function selector for a given function name and parameters.
86
- * @param name - The name of the function.
87
- * @param parameters - An array of ABIParameter objects, each containing the type information of a function parameter.
88
- * @returns A Buffer containing the 4-byte function selector.
89
- */
90
- static fromNameAndParameters(name, parameters) {
91
- const signature = decodeFunctionSignature(name, parameters);
92
- const selector = FunctionSelector.fromSignature(signature);
93
- // If using the debug logger here it kill the typing in the `server_world_state_synchronizer` and jest tests.
94
- // console.log(`Function selector for ${signature} is ${selector}`);
95
- return selector;
96
- }
97
- /**
98
- * Create an AztecAddress instance from a hex-encoded string.
99
- * The input 'address' should be prefixed with '0x' or not, and have exactly 64 hex characters.
100
- * Throws an error if the input length is invalid or address value is out of range.
101
- *
102
- * @param selector - The hex-encoded string representing the Aztec address.
103
- * @returns An AztecAddress instance.
104
- */
105
- static fromString(selector) {
106
- const buf = Buffer.from(selector.replace(/^0x/i, ''), 'hex');
107
- if (buf.length !== FunctionSelector.SIZE) {
108
- throw new Error(`Invalid FunctionSelector length ${buf.length}.`);
109
- }
110
- return FunctionSelector.fromBuffer(buf);
111
- }
112
- /**
113
- * Creates an empty function selector.
114
- * @returns An empty function selector.
115
- */
116
- static empty() {
117
- return new FunctionSelector(0);
118
- }
119
- }
120
- /**
121
- * The size of the function selector in bytes.
122
- */
123
- FunctionSelector.SIZE = 4;
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2Z1bmN0aW9uX3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUFZLGdEQUFnRCxDQUFRLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQy9FLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsZ0JBQWdCLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztTQUNsRjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsSUFBSTtRQUN6QyxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lB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