@aztec/foundation 0.1.0-alpha22 → 0.1.0-alpha24

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 (120) hide show
  1. package/.prettierrc.json +9 -2
  2. package/.tsbuildinfo +1 -1
  3. package/dest/abi/abi.d.ts +137 -0
  4. package/dest/abi/abi.d.ts.map +1 -0
  5. package/dest/abi/abi.js +18 -0
  6. package/dest/abi/abi_coder.d.ts +35 -0
  7. package/dest/abi/abi_coder.d.ts.map +1 -0
  8. package/dest/abi/abi_coder.js +58 -0
  9. package/dest/abi/decoder.d.ts +19 -0
  10. package/dest/abi/decoder.d.ts.map +1 -0
  11. package/dest/abi/decoder.js +71 -0
  12. package/dest/abi/encoder.d.ts +10 -0
  13. package/dest/abi/encoder.d.ts.map +1 -0
  14. package/dest/abi/encoder.js +80 -0
  15. package/dest/abi/index.d.ts +4 -136
  16. package/dest/abi/index.d.ts.map +1 -1
  17. package/dest/abi/index.js +5 -18
  18. package/dest/aztec-address/index.d.ts +7 -0
  19. package/dest/aztec-address/index.d.ts.map +1 -1
  20. package/dest/aztec-address/index.js +10 -1
  21. package/dest/crypto/random/index.js +2 -2
  22. package/dest/crypto/sha256/index.d.ts.map +1 -1
  23. package/dest/crypto/sha256/index.js +1 -1
  24. package/dest/crypto/sha256/index.test.js +2 -2
  25. package/dest/fields/fields.d.ts +6 -0
  26. package/dest/fields/fields.d.ts.map +1 -1
  27. package/dest/fields/fields.js +10 -2
  28. package/dest/fields/point.d.ts +8 -23
  29. package/dest/fields/point.d.ts.map +1 -1
  30. package/dest/fields/point.js +10 -31
  31. package/dest/json-rpc/client/json_rpc_client.d.ts +1 -1
  32. package/dest/json-rpc/client/json_rpc_client.d.ts.map +1 -1
  33. package/dest/json-rpc/client/json_rpc_client.js +1 -1
  34. package/dest/json-rpc/client/json_rpc_client.test.js +2 -2
  35. package/dest/json-rpc/convert.d.ts.map +1 -1
  36. package/dest/json-rpc/convert.js +1 -1
  37. package/dest/json-rpc/convert.test.js +2 -2
  38. package/dest/json-rpc/server/json_proxy.d.ts +1 -1
  39. package/dest/json-rpc/server/json_proxy.d.ts.map +1 -1
  40. package/dest/json-rpc/server/json_rpc_server.d.ts +1 -1
  41. package/dest/json-rpc/server/json_rpc_server.d.ts.map +1 -1
  42. package/dest/json-rpc/server/json_rpc_server.js +5 -5
  43. package/dest/json-rpc/server/json_rpc_server.test.js +2 -2
  44. package/dest/log/log_history.test.js +1 -1
  45. package/dest/mutex/mutex.test.d.ts.map +1 -1
  46. package/dest/mutex/mutex.test.js +1 -1
  47. package/dest/serialize/buffer_reader.d.ts +1 -1
  48. package/dest/serialize/buffer_reader.js +1 -1
  49. package/dest/serialize/buffer_reader.test.js +2 -2
  50. package/dest/serialize/serialize.test.js +2 -2
  51. package/dest/serialize/serializer.js +2 -2
  52. package/dest/transport/browser/shared_worker_listener.d.ts.map +1 -1
  53. package/dest/transport/browser/shared_worker_listener.js +1 -1
  54. package/dest/transport/browser/worker_listener.d.ts.map +1 -1
  55. package/dest/transport/browser/worker_listener.js +1 -1
  56. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +2 -2
  57. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  58. package/dest/transport/dispatch/create_dispatch_proxy.js +1 -1
  59. package/dest/transport/interface/listener.d.ts.map +1 -1
  60. package/dest/transport/node/node_connector.d.ts.map +1 -1
  61. package/dest/transport/node/node_connector.js +1 -1
  62. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  63. package/dest/transport/node/node_connector_socket.js +1 -1
  64. package/dest/transport/node/node_listener.d.ts.map +1 -1
  65. package/dest/transport/node/node_listener.js +2 -2
  66. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  67. package/dest/transport/node/node_listener_socket.js +1 -1
  68. package/dest/transport/transport_client.d.ts.map +1 -1
  69. package/dest/transport/transport_client.js +2 -2
  70. package/dest/wasm/wasm/wasm_module.d.ts.map +1 -1
  71. package/dest/wasm/wasm/wasm_module.js +2 -2
  72. package/dest/wasm/wasm/wasm_module.test.js +3 -3
  73. package/dest/wasm/worker/browser/web_data_store.d.ts.map +1 -1
  74. package/dest/wasm/worker/browser/web_data_store.js +1 -1
  75. package/dest/wasm/worker/node/node_data_store.d.ts.map +1 -1
  76. package/dest/wasm/worker/node/node_data_store.js +2 -2
  77. package/dest/wasm/worker/node/node_worker.d.ts.map +1 -1
  78. package/dest/wasm/worker/node/node_worker.js +2 -2
  79. package/dest/wasm/worker/node/start_node_module.d.ts.map +1 -1
  80. package/dest/wasm/worker/node/start_node_module.js +1 -1
  81. package/package.json +1 -1
  82. package/src/abi/abi.ts +147 -0
  83. package/src/abi/abi_coder.ts +62 -0
  84. package/src/abi/decoder.ts +79 -0
  85. package/src/abi/encoder.ts +79 -0
  86. package/src/abi/index.ts +4 -147
  87. package/src/aztec-address/index.ts +10 -0
  88. package/src/crypto/random/index.ts +1 -1
  89. package/src/crypto/sha256/index.test.ts +2 -1
  90. package/src/crypto/sha256/index.ts +1 -0
  91. package/src/fields/fields.ts +12 -2
  92. package/src/fields/point.ts +11 -34
  93. package/src/json-rpc/client/json_rpc_client.test.ts +2 -1
  94. package/src/json-rpc/client/json_rpc_client.ts +2 -1
  95. package/src/json-rpc/convert.test.ts +2 -2
  96. package/src/json-rpc/convert.ts +2 -1
  97. package/src/json-rpc/server/json_proxy.ts +1 -1
  98. package/src/json-rpc/server/json_rpc_server.test.ts +2 -1
  99. package/src/json-rpc/server/json_rpc_server.ts +5 -5
  100. package/src/log/log_history.test.ts +1 -0
  101. package/src/mutex/mutex.test.ts +1 -0
  102. package/src/serialize/buffer_reader.test.ts +2 -1
  103. package/src/serialize/buffer_reader.ts +1 -1
  104. package/src/serialize/serialize.test.ts +3 -3
  105. package/src/serialize/serializer.ts +1 -1
  106. package/src/transport/browser/shared_worker_listener.ts +1 -0
  107. package/src/transport/browser/worker_listener.ts +1 -0
  108. package/src/transport/dispatch/create_dispatch_proxy.ts +4 -3
  109. package/src/transport/interface/listener.ts +1 -0
  110. package/src/transport/node/node_connector.ts +1 -0
  111. package/src/transport/node/node_connector_socket.ts +1 -0
  112. package/src/transport/node/node_listener.ts +2 -1
  113. package/src/transport/node/node_listener_socket.ts +1 -0
  114. package/src/transport/transport_client.ts +3 -2
  115. package/src/wasm/wasm/wasm_module.test.ts +3 -2
  116. package/src/wasm/wasm/wasm_module.ts +3 -2
  117. package/src/wasm/worker/browser/web_data_store.ts +2 -1
  118. package/src/wasm/worker/node/node_data_store.ts +3 -2
  119. package/src/wasm/worker/node/node_worker.ts +2 -1
  120. package/src/wasm/worker/node/start_node_module.ts +2 -1
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Indicates whether a parameter is public or secret/private.
3
+ */
4
+ export var ABIParameterVisibility;
5
+ (function (ABIParameterVisibility) {
6
+ ABIParameterVisibility["PUBLIC"] = "public";
7
+ ABIParameterVisibility["SECRET"] = "secret";
8
+ })(ABIParameterVisibility || (ABIParameterVisibility = {}));
9
+ /**
10
+ * Noir function types.
11
+ */
12
+ export var FunctionType;
13
+ (function (FunctionType) {
14
+ FunctionType["SECRET"] = "secret";
15
+ FunctionType["OPEN"] = "open";
16
+ FunctionType["UNCONSTRAINED"] = "unconstrained";
17
+ })(FunctionType || (FunctionType = {}));
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9hYmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0E7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxzQkFHWDtBQUhELFdBQVksc0JBQXNCO0lBQ2hDLDJDQUFpQixDQUFBO0lBQ2pCLDJDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBR2pDO0FBMkVEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksWUFJWDtBQUpELFdBQVksWUFBWTtJQUN0QixpQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBYSxDQUFBO0lBQ2IsK0NBQStCLENBQUE7QUFDakMsQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCIn0=
@@ -0,0 +1,35 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { ABIParameter, ABIType } from '@aztec/foundation/abi';
3
+ /**
4
+ * Generate a function signature string for a given function name and parameters.
5
+ * The signature is used to uniquely identify functions within noir contracts.
6
+ * If the function name is 'constructor', it returns just the name, otherwise it returns the name followed by the list of parameter types.
7
+ *
8
+ * @param name - The name of the function.
9
+ * @param parameters - An array of ABIParameter objects, each containing the type information of a function parameter.
10
+ * @returns A string representing the function signature.
11
+ */
12
+ export declare function computeFunctionSignature(name: string, parameters: ABIParameter[]): string;
13
+ /**
14
+ * Generate a function selector for a given function signature.
15
+ * @param signature - The signature of the function.
16
+ * @param size - Number of bytes of the return buffer.
17
+ * @returns A Buffer containing the n-byte function selector.
18
+ */
19
+ export declare function computeFunctionSelector(signature: string, size: number): Buffer;
20
+ /**
21
+ * Generate a function selector for a given function name and parameters.
22
+ * It is derived by taking the first 4 bytes of the Keccak-256 hash of the function signature.
23
+ *
24
+ * @param name - The name of the function.
25
+ * @param parameters - An array of ABIParameter objects, each containing the type information of a function parameter.
26
+ * @returns A Buffer containing the 4-byte function selector.
27
+ */
28
+ export declare function generateFunctionSelector(name: string, parameters: ABIParameter[]): Buffer;
29
+ /**
30
+ * Get the size of an ABI type in field elements.
31
+ * @param type - The ABI type.
32
+ * @returns The size of the type in field elements.
33
+ */
34
+ export declare function sizeOfType(type: ABIType): number;
35
+ //# sourceMappingURL=abi_coder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi_coder.d.ts","sourceRoot":"","sources":["../../src/abi/abi_coder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAEhF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAGhF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAiBhD"}
@@ -0,0 +1,58 @@
1
+ import { keccak } from '@aztec/foundation/crypto';
2
+ /**
3
+ * Generate a function signature string for a given function name and parameters.
4
+ * The signature is used to uniquely identify functions within noir contracts.
5
+ * If the function name is 'constructor', it returns just the name, otherwise it returns the name followed by the list of parameter types.
6
+ *
7
+ * @param name - The name of the function.
8
+ * @param parameters - An array of ABIParameter objects, each containing the type information of a function parameter.
9
+ * @returns A string representing the function signature.
10
+ */
11
+ export function computeFunctionSignature(name, parameters) {
12
+ return name === 'constructor' ? name : `${name}(${parameters.map(p => p.type.kind).join(',')})`;
13
+ }
14
+ /**
15
+ * Generate a function selector for a given function signature.
16
+ * @param signature - The signature of the function.
17
+ * @param size - Number of bytes of the return buffer.
18
+ * @returns A Buffer containing the n-byte function selector.
19
+ */
20
+ export function computeFunctionSelector(signature, size) {
21
+ return keccak(Buffer.from(signature)).slice(0, size);
22
+ }
23
+ /**
24
+ * Generate a function selector for a given function name and parameters.
25
+ * It is derived by taking the first 4 bytes of the Keccak-256 hash of the function signature.
26
+ *
27
+ * @param name - The name of the function.
28
+ * @param parameters - An array of ABIParameter objects, each containing the type information of a function parameter.
29
+ * @returns A Buffer containing the 4-byte function selector.
30
+ */
31
+ export function generateFunctionSelector(name, parameters) {
32
+ const signature = computeFunctionSignature(name, parameters);
33
+ return keccak(Buffer.from(signature)).slice(0, 4);
34
+ }
35
+ /**
36
+ * Get the size of an ABI type in field elements.
37
+ * @param type - The ABI type.
38
+ * @returns The size of the type in field elements.
39
+ */
40
+ export function sizeOfType(type) {
41
+ switch (type.kind) {
42
+ case 'field':
43
+ case 'boolean':
44
+ case 'integer':
45
+ return 1;
46
+ case 'string':
47
+ return type.length;
48
+ case 'array':
49
+ return type.length * sizeOfType(type.type);
50
+ case 'struct':
51
+ return type.fields.reduce((sum, field) => sum + sizeOfType(field.type), 0);
52
+ default: {
53
+ const exhaustiveCheck = type;
54
+ throw new Error(`Unhandled abi type: ${exhaustiveCheck}`);
55
+ }
56
+ }
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpX2NvZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9hYmlfY29kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWxEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQVksRUFBRSxVQUEwQjtJQUMvRSxPQUFPLElBQUksS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFDbEcsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFNBQWlCLEVBQUUsSUFBWTtJQUNyRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxJQUFZLEVBQUUsVUFBMEI7SUFDL0UsTUFBTSxTQUFTLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzdELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFhO0lBQ3RDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNqQixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxTQUFTO1lBQ1osT0FBTyxDQUFDLENBQUM7UUFDWCxLQUFLLFFBQVE7WUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsS0FBSyxRQUFRO1lBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdFLE9BQU8sQ0FBQyxDQUFDO1lBQ1AsTUFBTSxlQUFlLEdBQVUsSUFBSSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLGVBQWUsRUFBRSxDQUFDLENBQUM7U0FDM0Q7S0FDRjtBQUNILENBQUMifQ==
@@ -0,0 +1,19 @@
1
+ import { FunctionAbi } from '@aztec/foundation/abi';
2
+ import { Fr } from '@aztec/foundation/fields';
3
+ /**
4
+ * The type of our decoded ABI.
5
+ */
6
+ type DecodedReturn = bigint | boolean | DecodedReturn[] | {
7
+ [key: string]: DecodedReturn;
8
+ };
9
+ /**
10
+ * Decodes return values from a function call.
11
+ * @param abi - The ABI entry of the function.
12
+ * @param returnValues - The decoded return values.
13
+ * @returns
14
+ */
15
+ export declare function decodeReturnValues(abi: FunctionAbi, returnValues: Fr[]): (bigint | boolean | DecodedReturn[] | {
16
+ [key: string]: DecodedReturn;
17
+ })[];
18
+ export {};
19
+ //# sourceMappingURL=decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/abi/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C;;GAEG;AACH,KAAK,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,CAAC;AAgE3F;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE;;KAEtE"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Decodes return values from a function call.
3
+ * Missing support for integer and string.
4
+ */
5
+ class ReturnValuesDecoder {
6
+ constructor(abi, flattened) {
7
+ this.abi = abi;
8
+ this.flattened = flattened;
9
+ }
10
+ /**
11
+ * Decodes a single return value from field to the given type.
12
+ * @param abiType - The type of the return value.
13
+ * @returns The decoded return value.
14
+ */
15
+ decodeReturn(abiType) {
16
+ switch (abiType.kind) {
17
+ case 'field':
18
+ return this.getNextField().value;
19
+ case 'boolean':
20
+ return !this.getNextField().isZero();
21
+ case 'array': {
22
+ const array = [];
23
+ for (let i = 0; i < abiType.length; i += 1) {
24
+ array.push(this.decodeReturn(abiType.type));
25
+ }
26
+ return array;
27
+ }
28
+ case 'struct': {
29
+ const struct = {};
30
+ for (const field of abiType.fields) {
31
+ struct[field.name] = this.decodeReturn(field.type);
32
+ }
33
+ return struct;
34
+ }
35
+ default:
36
+ throw new Error(`Unsupported type: ${abiType.kind}`);
37
+ }
38
+ }
39
+ /**
40
+ * Gets the next field in the flattened return values.
41
+ * @returns The next field in the flattened return values.
42
+ */
43
+ getNextField() {
44
+ const field = this.flattened.shift();
45
+ if (!field) {
46
+ throw new Error('Not enough return values');
47
+ }
48
+ return field;
49
+ }
50
+ /**
51
+ * Decodes all the return values for the given function ABI.
52
+ * @returns The decoded return values.
53
+ */
54
+ decode() {
55
+ const returnValues = [];
56
+ for (let i = 0; i < this.abi.returnTypes.length; i += 1) {
57
+ returnValues.push(this.decodeReturn(this.abi.returnTypes[i]));
58
+ }
59
+ return returnValues;
60
+ }
61
+ }
62
+ /**
63
+ * Decodes return values from a function call.
64
+ * @param abi - The ABI entry of the function.
65
+ * @param returnValues - The decoded return values.
66
+ * @returns
67
+ */
68
+ export function decodeReturnValues(abi, returnValues) {
69
+ return new ReturnValuesDecoder(abi, returnValues.slice()).decode();
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvZGVjb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQjtJQUN2QixZQUFvQixHQUFnQixFQUFVLFNBQWU7UUFBekMsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQU07SUFBRyxDQUFDO0lBRWpFOzs7O09BSUc7SUFDSyxZQUFZLENBQUMsT0FBZ0I7UUFDbkMsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3BCLEtBQUssT0FBTztnQkFDVixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDbkMsS0FBSyxTQUFTO2dCQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsS0FBSyxPQUFPLENBQUMsQ0FBQztnQkFDWixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDN0M7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBQ2IsTUFBTSxNQUFNLEdBQXFDLEVBQUUsQ0FBQztnQkFDcEQsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO29CQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDtnQkFDRCxPQUFPLE1BQU0sQ0FBQzthQUNmO1lBQ0Q7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNO1FBQ1gsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2RCxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsR0FBZ0IsRUFBRSxZQUFrQjtJQUNyRSxPQUFPLElBQUksbUJBQW1CLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3JFLENBQUMifQ==
@@ -0,0 +1,10 @@
1
+ import { FunctionAbi } from '@aztec/foundation/abi';
2
+ import { Fr } from '@aztec/foundation/fields';
3
+ /**
4
+ * Encodes all the arguments for a function call.
5
+ * @param abi - The function ABI entry.
6
+ * @param args - The arguments to encode.
7
+ * @returns The encoded arguments.
8
+ */
9
+ export declare function encodeArguments(abi: FunctionAbi, args: any[]): Fr[];
10
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/abi/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAqE9C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,QAE5D"}
@@ -0,0 +1,80 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ /**
3
+ * Encodes arguments for a function call.
4
+ * Missing support for integer and string.
5
+ */
6
+ class ArgumentEncoder {
7
+ constructor(abi, args) {
8
+ this.abi = abi;
9
+ this.args = args;
10
+ this.flattened = [];
11
+ }
12
+ /**
13
+ * Encodes a single argument from the given type to field.
14
+ * @param abiType - The abi type of the argument.
15
+ * @param arg - The value to encode.
16
+ * @param name - Name.
17
+ */
18
+ encodeArgument(abiType, arg, name) {
19
+ if (arg === undefined || arg == null) {
20
+ throw new Error(`Undefined argument ${name ?? 'unnamed'} of type ${abiType.kind}`);
21
+ }
22
+ switch (abiType.kind) {
23
+ case 'field':
24
+ if (typeof arg === 'number') {
25
+ this.flattened.push(new Fr(BigInt(arg)));
26
+ }
27
+ else if (typeof arg === 'bigint') {
28
+ this.flattened.push(new Fr(arg));
29
+ }
30
+ else if (typeof arg === 'object') {
31
+ if (typeof arg.toField === 'function') {
32
+ this.flattened.push(arg.toField());
33
+ }
34
+ else {
35
+ this.flattened.push(arg);
36
+ }
37
+ }
38
+ break;
39
+ case 'boolean':
40
+ this.flattened.push(new Fr(arg ? 1n : 0n));
41
+ break;
42
+ case 'array':
43
+ for (let i = 0; i < abiType.length; i += 1) {
44
+ this.encodeArgument(abiType.type, arg[i], `${name}[${i}]`);
45
+ }
46
+ break;
47
+ case 'struct':
48
+ for (const field of abiType.fields) {
49
+ this.encodeArgument(field.type, arg[field.name], `${name}.${field.name}`);
50
+ }
51
+ break;
52
+ case 'integer':
53
+ this.flattened.push(new Fr(arg));
54
+ break;
55
+ default:
56
+ throw new Error(`Unsupported type: ${abiType.kind}`);
57
+ }
58
+ }
59
+ /**
60
+ * Encodes all the arguments for the given function ABI.
61
+ * @returns The encoded arguments.
62
+ */
63
+ encode() {
64
+ for (let i = 0; i < this.abi.parameters.length; i += 1) {
65
+ const parameterAbi = this.abi.parameters[i];
66
+ this.encodeArgument(parameterAbi.type, this.args[i], parameterAbi.name);
67
+ }
68
+ return this.flattened;
69
+ }
70
+ }
71
+ /**
72
+ * Encodes all the arguments for a function call.
73
+ * @param abi - The function ABI entry.
74
+ * @param args - The arguments to encode.
75
+ * @returns The encoded arguments.
76
+ */
77
+ export function encodeArguments(abi, args) {
78
+ return new ArgumentEncoder(abi, args).encode();
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUM7OztHQUdHO0FBQ0gsTUFBTSxlQUFlO0lBR25CLFlBQW9CLEdBQWdCLEVBQVUsSUFBVztRQUFyQyxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBTztRQUZqRCxjQUFTLEdBQVMsRUFBRSxDQUFDO0lBRStCLENBQUM7SUFFN0Q7Ozs7O09BS0c7SUFDSyxjQUFjLENBQUMsT0FBZ0IsRUFBRSxHQUFRLEVBQUUsSUFBYTtRQUM5RCxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixJQUFJLElBQUksU0FBUyxZQUFZLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3BGO1FBQ0QsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3BCLEtBQUssT0FBTztnQkFDVixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDMUM7cUJBQU0sSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ2xDO3FCQUFNLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO29CQUNsQyxJQUFJLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7d0JBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO3FCQUNwQzt5QkFBTTt3QkFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDMUI7aUJBQ0Y7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzVEO2dCQUNELE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO29CQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDM0U7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTTtRQUNYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekU7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLEdBQWdCLEVBQUUsSUFBVztJQUMzRCxPQUFPLElBQUksZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNqRCxDQUFDIn0=
@@ -1,137 +1,5 @@
1
- /**
2
- * A named type.
3
- */
4
- export interface ABIVariable {
5
- /**
6
- * The name of the variable.
7
- */
8
- name: string;
9
- /**
10
- * The type of the variable.
11
- */
12
- type: ABIType;
13
- }
14
- /**
15
- * Indicates whether a parameter is public or secret/private.
16
- */
17
- export declare enum ABIParameterVisibility {
18
- PUBLIC = "public",
19
- SECRET = "secret"
20
- }
21
- /**
22
- * A function parameter.
23
- */
24
- export interface ABIParameter extends ABIVariable {
25
- /**
26
- * Indicates whether a parameter is public or secret/private.
27
- */
28
- visibility: ABIParameterVisibility;
29
- }
30
- /**
31
- * A basic type.
32
- */
33
- export interface BasicType<T extends string> {
34
- /**
35
- * The kind of the type.
36
- */
37
- kind: T;
38
- }
39
- /**
40
- * A variable type.
41
- */
42
- export type ABIType = BasicType<'field'> | BasicType<'boolean'> | IntegerType | ArrayType | StringType | StructType;
43
- /**
44
- * An integer type.
45
- */
46
- export interface IntegerType extends BasicType<'integer'> {
47
- /**
48
- * The sign of the integer.
49
- */
50
- sign: string;
51
- /**
52
- * The width of the integer in bits.
53
- */
54
- width: number;
55
- }
56
- /**
57
- * An array type.
58
- */
59
- export interface ArrayType extends BasicType<'array'> {
60
- /**
61
- * The length of the array.
62
- */
63
- length: number;
64
- /**
65
- * The type of the array elements.
66
- */
67
- type: ABIType;
68
- }
69
- /**
70
- * A string type.
71
- */
72
- export interface StringType extends BasicType<'string'> {
73
- /**
74
- * The length of the string.
75
- */
76
- length: number;
77
- }
78
- /**
79
- * A struct type.
80
- */
81
- export interface StructType extends BasicType<'struct'> {
82
- /**
83
- * The fields of the struct.
84
- */
85
- fields: ABIVariable[];
86
- }
87
- /**
88
- * Noir function types.
89
- */
90
- export declare enum FunctionType {
91
- SECRET = "secret",
92
- OPEN = "open",
93
- UNCONSTRAINED = "unconstrained"
94
- }
95
- /**
96
- * The ABI entry of a function.
97
- */
98
- export interface FunctionAbi {
99
- /**
100
- * The name of the function.
101
- */
102
- name: string;
103
- /**
104
- * Whether the function is secret.
105
- */
106
- functionType: FunctionType;
107
- /**
108
- * Function parameters.
109
- */
110
- parameters: ABIParameter[];
111
- /**
112
- * The types of the return values.
113
- */
114
- returnTypes: ABIType[];
115
- /**
116
- * The ACIR bytecode of the function.
117
- */
118
- bytecode: string;
119
- /**
120
- * The verification key of the function.
121
- */
122
- verificationKey?: string;
123
- }
124
- /**
125
- * Defines ABI of a contract.
126
- */
127
- export interface ContractAbi {
128
- /**
129
- * The name of the contract.
130
- */
131
- name: string;
132
- /**
133
- * The functions of the contract.
134
- */
135
- functions: FunctionAbi[];
136
- }
1
+ export * from './abi.js';
2
+ export * from './abi_coder.js';
3
+ export * from './encoder.js';
4
+ export * from './decoder.js';
137
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C;;OAEG;IACH,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM;IACzC;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpH;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,SAAS,CAAC;IACvD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,OAAO,CAAC;IACnD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,SAAS,CAAC,QAAQ,CAAC;IACrD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,SAAS,CAAC,QAAQ,CAAC;IACrD;;OAEG;IACH,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,aAAa,kBAAkB;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B;;OAEG;IACH,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
package/dest/abi/index.js CHANGED
@@ -1,18 +1,5 @@
1
- /**
2
- * Indicates whether a parameter is public or secret/private.
3
- */
4
- export var ABIParameterVisibility;
5
- (function (ABIParameterVisibility) {
6
- ABIParameterVisibility["PUBLIC"] = "public";
7
- ABIParameterVisibility["SECRET"] = "secret";
8
- })(ABIParameterVisibility || (ABIParameterVisibility = {}));
9
- /**
10
- * Noir function types.
11
- */
12
- export var FunctionType;
13
- (function (FunctionType) {
14
- FunctionType["SECRET"] = "secret";
15
- FunctionType["OPEN"] = "open";
16
- FunctionType["UNCONSTRAINED"] = "unconstrained";
17
- })(FunctionType || (FunctionType = {}));
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksc0JBR1g7QUFIRCxXQUFZLHNCQUFzQjtJQUNoQywyQ0FBaUIsQ0FBQTtJQUNqQiwyQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUdqQztBQTJFRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFlBSVg7QUFKRCxXQUFZLFlBQVk7SUFDdEIsaUNBQWlCLENBQUE7SUFDakIsNkJBQWEsQ0FBQTtJQUNiLCtDQUErQixDQUFBO0FBQ2pDLENBQUMsRUFKVyxZQUFZLEtBQVosWUFBWSxRQUl2QiJ9
1
+ export * from './abi.js';
2
+ export * from './abi_coder.js';
3
+ export * from './encoder.js';
4
+ export * from './decoder.js';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUMifQ==
@@ -46,6 +46,13 @@ export declare class AztecAddress {
46
46
  * @returns An AztecAddress instance.
47
47
  */
48
48
  static fromString(address: string): AztecAddress;
49
+ /**
50
+ * Creates an AztecAddress from a bigint.
51
+ * The provided value must be within the range of a field.
52
+ * @param address - The bigint representation of the address.
53
+ * @returns An AztecAddress instance.
54
+ */
55
+ static fromBigInt(address: bigint): AztecAddress;
49
56
  /**
50
57
  * Converts the AztecAddress instance into a Buffer.
51
58
  * This method should be used when encoding the address for storage, transmission or serialization purposes.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aztec-address/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;;GAKG;AACH,qBAAa,YAAY;IAOrB;;OAEG;aACa,MAAM,EAAE,MAAM;IAThC,MAAM,CAAC,aAAa,SAAM;IAC1B,MAAM,CAAC,IAAI,eAA8D;IACzE,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAA6B;;IAG3C;;OAEG;IACa,MAAM,EAAE,MAAM;IAQhC;;;;;OAKG;IACH,MAAM,CAAC,MAAM;IAIb;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAQjC;;;;;OAKG;IACH,QAAQ;IAIR;;;;;OAKG;IACH,QAAQ,IAAI,KAAK,MAAM,EAAE;IAIzB;;;;;OAKG;IACH,aAAa;IAKb;;;OAGG;IACH,OAAO;IAIP;;;OAGG;IACH,QAAQ;IAIR;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,YAAY;IAIxB;;;;OAIG;IACH,MAAM;IAIN;;;;OAIG;IACH,cAAc;CAGf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aztec-address/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;;GAKG;AACH,qBAAa,YAAY;IAOrB;;OAEG;aACa,MAAM,EAAE,MAAM;IAThC,MAAM,CAAC,aAAa,SAAM;IAC1B,MAAM,CAAC,IAAI,eAA8D;IACzE,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAA6B;;IAG3C;;OAEG;IACa,MAAM,EAAE,MAAM;IAQhC;;;;;OAKG;IACH,MAAM,CAAC,MAAM;IAIb;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAQjC;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAIjC;;;;;OAKG;IACH,QAAQ;IAIR;;;;;OAKG;IACH,QAAQ,IAAI,KAAK,MAAM,EAAE;IAIzB;;;;;OAKG;IACH,aAAa;IAKb;;;OAGG;IACH,OAAO;IAIP;;;OAGG;IACH,QAAQ;IAIR;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,YAAY;IAIxB;;;;OAIG;IACH,MAAM;IAIN;;;;OAIG;IACH,cAAc;CAGf"}
@@ -55,6 +55,15 @@ export class AztecAddress {
55
55
  }
56
56
  return new AztecAddress(buf);
57
57
  }
58
+ /**
59
+ * Creates an AztecAddress from a bigint.
60
+ * The provided value must be within the range of a field.
61
+ * @param address - The bigint representation of the address.
62
+ * @returns An AztecAddress instance.
63
+ */
64
+ static fromBigInt(address) {
65
+ return new AztecAddress(toBufferBE(address, AztecAddress.SIZE_IN_BYTES));
66
+ }
58
67
  /**
59
68
  * Converts the AztecAddress instance into a Buffer.
60
69
  * This method should be used when encoding the address for storage, transmission or serialization purposes.
@@ -128,4 +137,4 @@ AztecAddress.SIZE_IN_BYTES = 32;
128
137
  AztecAddress.ZERO = new AztecAddress(Buffer.alloc(AztecAddress.SIZE_IN_BYTES));
129
138
  AztecAddress.MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
130
139
  AztecAddress.MAX_VALUE = AztecAddress.MODULUS - 1n;
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtYWRkcmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQU12QjtJQUNFOztPQUVHO0lBQ2EsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFOUIsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksS0FBSyxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxNQUFNO1FBQ1gsT0FBTyxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBNkI7UUFDN0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQWU7UUFDL0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLGFBQWEsRUFBRTtZQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNsRDtRQUNELE9BQU8sSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRO1FBQ04sT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYTtRQUNYLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU87UUFDTCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxHQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O0FBbElNLDBCQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ25CLGlCQUFJLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztBQUNsRSxvQkFBTyxHQUFHLG1FQUFtRSxDQUFDO0FBQzlFLHNCQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMifQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtYWRkcmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQU12QjtJQUNFOztPQUVHO0lBQ2EsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFOUIsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksS0FBSyxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxNQUFNO1FBQ1gsT0FBTyxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBNkI7UUFDN0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQWU7UUFDL0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLGFBQWEsRUFBRTtZQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNsRDtRQUNELE9BQU8sSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLE9BQU8sSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVE7UUFDTixPQUFPLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhO1FBQ1gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsT0FBTztRQUNMLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7QUE1SU0sMEJBQWEsR0FBRyxFQUFFLENBQUM7QUFDbkIsaUJBQUksR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLG9CQUFPLEdBQUcsbUVBQW1FLENBQUM7QUFDOUUsc0JBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyJ9
@@ -1,5 +1,5 @@
1
- import isNode from 'detect-node';
2
1
  import nodeCrypto from 'crypto';
2
+ import isNode from 'detect-node';
3
3
  // limit of Crypto.getRandomValues()
4
4
  // https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
5
5
  const MAX_BYTES = 65536;
@@ -33,4 +33,4 @@ export const randomBytes = (len) => {
33
33
  }
34
34
  return buf;
35
35
  };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3JhbmRvbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxVQUFVLE1BQU0sUUFBUSxDQUFDO0FBRWhDLG9DQUFvQztBQUNwQywwRUFBMEU7QUFDMUUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBRXhCLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRTtJQUN4QixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsTUFBTTtRQUFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNuRSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUN6QyxJQUFJLE1BQU0sRUFBRTtRQUNWLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQVcsQ0FBQztLQUM5QztJQUVELE1BQU0sTUFBTSxHQUFHLFlBQVksRUFBRSxDQUFDO0lBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7S0FDdkQ7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLElBQUksR0FBRyxHQUFHLFNBQVMsRUFBRTtRQUNuQiwrQ0FBK0M7UUFDL0Msb0dBQW9HO1FBQ3BHLEtBQUssSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxHQUFHLEVBQUUsU0FBUyxJQUFJLFNBQVMsRUFBRTtZQUMvRCxrRUFBa0U7WUFDbEUsc0NBQXNDO1lBQ3RDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDckU7S0FDRjtTQUFNO1FBQ0wsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUM3QjtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIn0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3JhbmRvbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFVBQVUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLG9DQUFvQztBQUNwQywwRUFBMEU7QUFDMUUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBRXhCLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRTtJQUN4QixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsTUFBTTtRQUFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNuRSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUN6QyxJQUFJLE1BQU0sRUFBRTtRQUNWLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQVcsQ0FBQztLQUM5QztJQUVELE1BQU0sTUFBTSxHQUFHLFlBQVksRUFBRSxDQUFDO0lBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7S0FDdkQ7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLElBQUksR0FBRyxHQUFHLFNBQVMsRUFBRTtRQUNuQiwrQ0FBK0M7UUFDL0Msb0dBQW9HO1FBQ3BHLEtBQUssSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxHQUFHLEVBQUUsU0FBUyxJQUFJLFNBQVMsRUFBRTtZQUMvRCxrRUFBa0U7WUFDbEUsc0NBQXNDO1lBQ3RDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDckU7S0FDRjtTQUFNO1FBQ0wsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUM3QjtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/sha256/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,eAAO,MAAM,MAAM,SAAU,MAAM,WAAqD,CAAC;AAEzF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,EAE3C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/sha256/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,eAAO,MAAM,MAAM,SAAU,MAAM,WAAqD,CAAC;AAEzF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,EAE3C,CAAC"}
@@ -11,4 +11,4 @@ export const sha256 = (data) => Buffer.from(hash.sha256().update(data).digest())
11
11
  export const sha256ToField = (buf) => {
12
12
  return Fr.fromBuffer(toBufferBE(toBigIntBE(sha256(buf)) % Fr.MODULUS, 32));
13
13
  };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NoYTI1Ni9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRXpGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBVyxFQUFNLEVBQUU7SUFDL0MsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQyJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NoYTI1Ni9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRXpGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBVyxFQUFNLEVBQUU7SUFDL0MsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQyJ9
@@ -1,5 +1,5 @@
1
+ import { createHash, randomBytes } from 'crypto';
1
2
  import { sha256 } from './index.js';
2
- import { randomBytes, createHash } from 'crypto';
3
3
  describe('sha256', () => {
4
4
  it('should correctly hash data using hash.js', () => {
5
5
  const data = randomBytes(67);
@@ -8,4 +8,4 @@ describe('sha256', () => {
8
8
  expect(result).toEqual(expected);
9
9
  });
10
10
  });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2hhMjU2L2luZGV4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVqRCxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtJQUN0QixFQUFFLENBQUMsMENBQTBDLEVBQUUsR0FBRyxFQUFFO1FBQ2xELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU3QixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2hhMjU2L2luZGV4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtJQUN0QixFQUFFLENBQUMsMENBQTBDLEVBQUUsR0FBRyxFQUFFO1FBQ2xELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU3QixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
@@ -64,6 +64,12 @@ export declare class Fr {
64
64
  * @returns A hex-encoded string representing the value of the class instance.
65
65
  */
66
66
  toString(padTo32?: boolean): `0x${string}`;
67
+ /**
68
+ * Retrieves the underlying bigint.
69
+ * This method mostly exists to match user expectations, as value is already public.
70
+ * @returns The underlying bigint.
71
+ */
72
+ toBigInt(): bigint;
67
73
  /**
68
74
  * Returns a shortened string representation of the Fr value, formatted with '0x' prefix and ellipsis in the middle.
69
75
  * The resulting string has first 10 characters (including '0x') and last 4 characters of the full hexadecimal value.
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/fields/fields.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D;;;;GAIG;AACH,qBAAa,EAAE;IACb,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAmB;IACnC,MAAM,CAAC,aAAa,SAAM;IAE1B;;OAEG;IACH,SAAgB,KAAK,SAAC;gBAEV,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC;;;;;;OAMG;IACH,MAAM,CAAC,MAAM;IAKb;;;OAGG;IACH,MAAM,CAAC,IAAI;IAIX;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAIjC;;;;;;OAMG;IACH,QAAQ;IAIR;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,UAAQ,GAAG,KAAK,MAAM,EAAE;IAIxC;;;;;OAKG;IACH,aAAa;IAKb;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,EAAE;IAId;;;;;;OAMG;IACH,MAAM;IAIN;;;;;OAKG;IACH,cAAc;CAGf;AAED;;;;;;;;;;GAUG;AACH,qBAAa,EAAE;IAMX;;OAEG;aACa,KAAK,EAAE,MAAM;IAR/B,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAmB;IACnC,MAAM,CAAC,aAAa,SAAM;;IAGxB;;OAEG;IACa,KAAK,EAAE,MAAM;IAO/B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM;IAKb;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C;;;;;OAKG;IACH,QAAQ;IAIR;;;;;;OAMG;IACH,QAAQ;IAIR;;;;;;OAMG;IACH,MAAM;IAIN;;;;;OAKG;IACH,cAAc;CAGf"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/fields/fields.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,EAAE;IACb,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAmB;IACnC,MAAM,CAAC,aAAa,SAAM;IAE1B;;OAEG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAElB,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC;;;;;;OAMG;IACH,MAAM,CAAC,MAAM;IAKb;;;OAGG;IACH,MAAM,CAAC,IAAI;IAIX;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAIjC;;;;;;OAMG;IACH,QAAQ;IAIR;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,UAAQ,GAAG,KAAK,MAAM,EAAE;IAIxC;;;;OAIG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;;;OAKG;IACH,aAAa;IAKb;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,EAAE;IAId;;;;;;OAMG;IACH,MAAM;IAIN;;;;;OAKG;IACH,cAAc;CAGf;AAED;;;;;;;;;;GAUG;AACH,qBAAa,EAAE;IAMX;;OAEG;aACa,KAAK,EAAE,MAAM;IAR/B,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAmB;IACnC,MAAM,CAAC,aAAa,SAAM;;IAGxB;;OAEG;IACa,KAAK,EAAE,MAAM;IAO/B;;;;;;OAMG;IACH,MAAM,CAAC,MAAM;IAKb;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C;;;;;OAKG;IACH,QAAQ;IAIR;;;;;;OAMG;IACH,QAAQ;IAIR;;;;;;OAMG;IACH,MAAM;IAIN;;;;;OAKG;IACH,cAAc;CAGf"}