@aztec/foundation 0.8.9 → 0.8.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/abi/abi.d.ts +31 -10
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +8 -8
- package/dest/abi/decoder.d.ts +2 -2
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +6 -6
- package/dest/abi/encoder.d.ts +2 -2
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +1 -1
- package/dest/abi/function_selector.d.ts +9 -0
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.js +16 -1
- package/dest/eth-address/index.d.ts +1 -1
- package/dest/eth-address/index.js +3 -3
- package/dest/fields/coordinate.d.ts +1 -1
- package/dest/fields/coordinate.js +1 -1
- package/dest/fields/point.d.ts +1 -1
- package/dest/fields/point.js +1 -1
- package/dest/fifo/bounded_serial_queue.d.ts +3 -3
- package/dest/fifo/bounded_serial_queue.js +3 -3
- package/dest/fifo/serial_queue.d.ts +1 -1
- package/dest/fifo/serial_queue.js +1 -1
- package/dest/json-rpc/convert.js +1 -1
- package/dest/running-promise/index.d.ts +2 -2
- package/dest/running-promise/index.js +3 -3
- package/dest/sleep/index.d.ts +4 -4
- package/dest/sleep/index.js +4 -4
- package/dest/timer/elapsed.d.ts +4 -5
- package/dest/timer/elapsed.d.ts.map +1 -1
- package/dest/timer/elapsed.js +5 -5
- package/package.json +1 -1
- package/src/abi/abi.ts +39 -14
- package/src/abi/decoder.ts +6 -6
- package/src/abi/encoder.ts +3 -3
- package/src/abi/function_selector.ts +16 -0
- package/src/eth-address/index.ts +2 -2
- package/src/fields/coordinate.ts +1 -1
- package/src/fields/point.ts +1 -1
- package/src/fifo/bounded_serial_queue.ts +3 -3
- package/src/fifo/serial_queue.ts +1 -1
- package/src/json-rpc/README.md +1 -1
- package/src/json-rpc/convert.ts +1 -1
- package/src/running-promise/index.ts +3 -3
- package/src/sleep/index.ts +4 -4
- package/src/timer/elapsed.ts +6 -6
package/dest/abi/abi.d.ts
CHANGED
|
@@ -88,6 +88,23 @@ export interface StructType extends BasicType<'struct'> {
|
|
|
88
88
|
*/
|
|
89
89
|
path: string;
|
|
90
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* A contract event.
|
|
93
|
+
*/
|
|
94
|
+
export interface EventAbi {
|
|
95
|
+
/**
|
|
96
|
+
* The event name.
|
|
97
|
+
*/
|
|
98
|
+
name: string;
|
|
99
|
+
/**
|
|
100
|
+
* Fully qualified name of the event.
|
|
101
|
+
*/
|
|
102
|
+
path: string;
|
|
103
|
+
/**
|
|
104
|
+
* The fields of the event.
|
|
105
|
+
*/
|
|
106
|
+
fields: ABIVariable[];
|
|
107
|
+
}
|
|
91
108
|
/**
|
|
92
109
|
* Aztec.nr function types.
|
|
93
110
|
*/
|
|
@@ -97,9 +114,9 @@ export declare enum FunctionType {
|
|
|
97
114
|
UNCONSTRAINED = "unconstrained"
|
|
98
115
|
}
|
|
99
116
|
/**
|
|
100
|
-
* The
|
|
117
|
+
* The abi entry of a function.
|
|
101
118
|
*/
|
|
102
|
-
export interface
|
|
119
|
+
export interface FunctionAbi {
|
|
103
120
|
/**
|
|
104
121
|
* The name of the function.
|
|
105
122
|
*/
|
|
@@ -122,9 +139,9 @@ export interface FunctionAbiHeader {
|
|
|
122
139
|
returnTypes: ABIType[];
|
|
123
140
|
}
|
|
124
141
|
/**
|
|
125
|
-
* The
|
|
142
|
+
* The artifact entry of a function.
|
|
126
143
|
*/
|
|
127
|
-
export interface
|
|
144
|
+
export interface FunctionArtifact extends FunctionAbi {
|
|
128
145
|
/**
|
|
129
146
|
* The ACIR bytecode of the function.
|
|
130
147
|
*/
|
|
@@ -201,9 +218,9 @@ export interface DebugMetadata {
|
|
|
201
218
|
fileMap: DebugFileMap;
|
|
202
219
|
}
|
|
203
220
|
/**
|
|
204
|
-
* Defines
|
|
221
|
+
* Defines artifact of a contract.
|
|
205
222
|
*/
|
|
206
|
-
export interface
|
|
223
|
+
export interface ContractArtifact {
|
|
207
224
|
/**
|
|
208
225
|
* The name of the contract.
|
|
209
226
|
*/
|
|
@@ -211,7 +228,11 @@ export interface ContractAbi {
|
|
|
211
228
|
/**
|
|
212
229
|
* The functions of the contract.
|
|
213
230
|
*/
|
|
214
|
-
functions:
|
|
231
|
+
functions: FunctionArtifact[];
|
|
232
|
+
/**
|
|
233
|
+
* The events of the contract.
|
|
234
|
+
*/
|
|
235
|
+
events: EventAbi[];
|
|
215
236
|
/**
|
|
216
237
|
* The debug metadata of the contract.
|
|
217
238
|
* It's used to include the relevant source code section when a constraint is not met during simulation.
|
|
@@ -232,10 +253,10 @@ export interface FunctionDebugMetadata {
|
|
|
232
253
|
files: DebugFileMap;
|
|
233
254
|
}
|
|
234
255
|
/**
|
|
235
|
-
* Gets the debug metadata of a given function from the contract
|
|
236
|
-
* @param
|
|
256
|
+
* Gets the debug metadata of a given function from the contract artifact
|
|
257
|
+
* @param artifact - The contract build artifact
|
|
237
258
|
* @param functionName - The name of the function
|
|
238
259
|
* @returns The debug metadata of the function
|
|
239
260
|
*/
|
|
240
|
-
export declare function getFunctionDebugMetadata(
|
|
261
|
+
export declare function getFunctionDebugMetadata(artifact: ContractArtifact, functionName: string): FunctionDebugMetadata | undefined;
|
|
241
262
|
//# sourceMappingURL=abi.d.ts.map
|
package/dest/abi/abi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/abi/abi.ts"],"names":[],"mappings":"AAEA;;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;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,aAAa,kBAAkB;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/abi/abi.ts"],"names":[],"mappings":"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"}
|
package/dest/abi/abi.js
CHANGED
|
@@ -17,16 +17,16 @@ export var FunctionType;
|
|
|
17
17
|
FunctionType["UNCONSTRAINED"] = "unconstrained";
|
|
18
18
|
})(FunctionType || (FunctionType = {}));
|
|
19
19
|
/**
|
|
20
|
-
* Gets the debug metadata of a given function from the contract
|
|
21
|
-
* @param
|
|
20
|
+
* Gets the debug metadata of a given function from the contract artifact
|
|
21
|
+
* @param artifact - The contract build artifact
|
|
22
22
|
* @param functionName - The name of the function
|
|
23
23
|
* @returns The debug metadata of the function
|
|
24
24
|
*/
|
|
25
|
-
export function getFunctionDebugMetadata(
|
|
26
|
-
const functionIndex =
|
|
27
|
-
if (
|
|
28
|
-
const debugSymbols = JSON.parse(inflate(Buffer.from(
|
|
29
|
-
const files =
|
|
25
|
+
export function getFunctionDebugMetadata(artifact, functionName) {
|
|
26
|
+
const functionIndex = artifact.functions.findIndex(f => f.name === functionName);
|
|
27
|
+
if (artifact.debug && functionIndex !== -1) {
|
|
28
|
+
const debugSymbols = JSON.parse(inflate(Buffer.from(artifact.debug.debugSymbols[functionIndex], 'base64'), { to: 'string' }));
|
|
29
|
+
const files = artifact.debug.fileMap;
|
|
30
30
|
return {
|
|
31
31
|
debugSymbols,
|
|
32
32
|
files,
|
|
@@ -34,4 +34,4 @@ export function getFunctionDebugMetadata(abi, functionName) {
|
|
|
34
34
|
}
|
|
35
35
|
return undefined;
|
|
36
36
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FiaS9hYmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWdCL0I7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxzQkFHWDtBQUhELFdBQVksc0JBQXNCO0lBQ2hDLDJDQUFpQixDQUFBO0lBQ2pCLDJDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBR2pDO0FBaUdEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksWUFJWDtBQUpELFdBQVksWUFBWTtJQUN0QixpQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBYSxDQUFBO0lBQ2IsK0NBQStCLENBQUE7QUFDakMsQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCO0FBMkpEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxRQUEwQixFQUMxQixZQUFvQjtJQUVwQixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7SUFDakYsSUFBSSxRQUFRLENBQUMsS0FBSyxJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUMxQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUM3RixDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDckMsT0FBTztZQUNMLFlBQVk7WUFDWixLQUFLO1NBQ04sQ0FBQztLQUNIO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyJ9
|
package/dest/abi/decoder.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ABIParameter,
|
|
1
|
+
import { ABIParameter, FunctionArtifact } from '@aztec/foundation/abi';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
/**
|
|
4
4
|
* The type of our decoded ABI.
|
|
@@ -12,7 +12,7 @@ export type DecodedReturn = bigint | boolean | DecodedReturn[] | {
|
|
|
12
12
|
* @param returnValues - The decoded return values.
|
|
13
13
|
* @returns
|
|
14
14
|
*/
|
|
15
|
-
export declare function decodeReturnValues(abi:
|
|
15
|
+
export declare function decodeReturnValues(abi: FunctionArtifact, returnValues: Fr[]): DecodedReturn;
|
|
16
16
|
/**
|
|
17
17
|
* Decodes the signature of a function from the name and parameters.
|
|
18
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/abi/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwB,
|
|
1
|
+
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/abi/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,CAAC;AAyElG;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,EAAE,iBAE3E;AAED;;GAEG;AACH,qBAAa,wBAAwB;IAEvB,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,UAAU;IAAkB,OAAO,CAAC,YAAY;IAD1F,OAAO,CAAC,SAAS,CAAS;gBACN,IAAI,EAAE,MAAM,EAAU,UAAU,EAAE,YAAY,EAAE,EAAU,YAAY,UAAQ;IAIlG;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAKvB;;;OAGG;IACI,MAAM,IAAI,MAAM;CAGxB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAE/E;AAED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAEjG"}
|
package/dest/abi/decoder.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Missing support for integer and string.
|
|
4
4
|
*/
|
|
5
5
|
class ReturnValuesDecoder {
|
|
6
|
-
constructor(
|
|
7
|
-
this.
|
|
6
|
+
constructor(artifact, flattened) {
|
|
7
|
+
this.artifact = artifact;
|
|
8
8
|
this.flattened = flattened;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
@@ -59,13 +59,13 @@ class ReturnValuesDecoder {
|
|
|
59
59
|
* @returns The decoded return values.
|
|
60
60
|
*/
|
|
61
61
|
decode() {
|
|
62
|
-
if (this.
|
|
62
|
+
if (this.artifact.returnTypes.length > 1) {
|
|
63
63
|
throw new Error('Multiple return values not supported');
|
|
64
64
|
}
|
|
65
|
-
if (this.
|
|
65
|
+
if (this.artifact.returnTypes.length === 0) {
|
|
66
66
|
return [];
|
|
67
67
|
}
|
|
68
|
-
return this.decodeReturn(this.
|
|
68
|
+
return this.decodeReturn(this.artifact.returnTypes[0]);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
@@ -146,4 +146,4 @@ export function decodeFunctionSignature(name, parameters) {
|
|
|
146
146
|
export function decodeFunctionSignatureWithParameterNames(name, parameters) {
|
|
147
147
|
return new FunctionSignatureDecoder(name, parameters, true).decode();
|
|
148
148
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvZGVjb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQjtJQUN2QixZQUFvQixRQUEwQixFQUFVLFNBQWU7UUFBbkQsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFNO0lBQUcsQ0FBQztJQUUzRTs7OztPQUlHO0lBQ0ssWUFBWSxDQUFDLE9BQWdCO1FBQ25DLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNwQixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25DLEtBQUssU0FBUztnQkFDWixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7aUJBQ3JEO2dCQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNuQyxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxLQUFLLE9BQU8sQ0FBQyxDQUFDO2dCQUNaLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDMUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUM3QztnQkFDRCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQztnQkFDYixNQUFNLE1BQU0sR0FBcUMsRUFBRSxDQUFDO2dCQUNw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
|
package/dest/abi/encoder.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FunctionAbi } from '@aztec/foundation/abi';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
/**
|
|
4
4
|
* Encodes all the arguments for a function call.
|
|
@@ -6,5 +6,5 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
6
6
|
* @param args - The arguments to encode.
|
|
7
7
|
* @returns The encoded arguments.
|
|
8
8
|
*/
|
|
9
|
-
export declare function encodeArguments(abi:
|
|
9
|
+
export declare function encodeArguments(abi: FunctionAbi, args: any[]): Fr[];
|
|
10
10
|
//# sourceMappingURL=encoder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/abi/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,
|
|
1
|
+
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/abi/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAmB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAiF9C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,QAE5D"}
|
package/dest/abi/encoder.js
CHANGED
|
@@ -93,4 +93,4 @@ class ArgumentEncoder {
|
|
|
93
93
|
export function encodeArguments(abi, args) {
|
|
94
94
|
return new ArgumentEncoder(abi, args).encode();
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5Qzs7O0dBR0c7QUFDSCxNQUFNLGVBQWU7SUFHbkIsWUFBb0IsR0FBZ0IsRUFBVSxJQUFXO1FBQXJDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFPO1FBRmpELGNBQVMsR0FBUyxFQUFFLENBQUM7SUFFK0IsQ0FBQztJQUU3RDs7Ozs7T0FLRztJQUNLLGNBQWMsQ0FBQyxPQUFnQixFQUFFLEdBQVEsRUFBRSxJQUFhO1FBQzlELElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLElBQUksSUFBSSxTQUFTLFlBQVksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDcEY7UUFDRCxRQUFRLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDcEIsS0FBSyxPQUFPO2dCQUNWLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO29CQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMxQztxQkFBTSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDbEM7cUJBQU0sSUFBSSxPQUFPLEdBQUcsS0FBSyxTQUFTLEVBQUU7b0JBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFD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
|
|
@@ -64,6 +64,15 @@ export declare class FunctionSelector {
|
|
|
64
64
|
* @returns A Buffer containing the 4-byte function selector.
|
|
65
65
|
*/
|
|
66
66
|
static fromNameAndParameters(name: string, parameters: ABIParameter[]): FunctionSelector;
|
|
67
|
+
/**
|
|
68
|
+
* Create an AztecAddress instance from a hex-encoded string.
|
|
69
|
+
* The input 'address' should be prefixed with '0x' or not, and have exactly 64 hex characters.
|
|
70
|
+
* Throws an error if the input length is invalid or address value is out of range.
|
|
71
|
+
*
|
|
72
|
+
* @param selector - The hex-encoded string representing the Aztec address.
|
|
73
|
+
* @returns An AztecAddress instance.
|
|
74
|
+
*/
|
|
75
|
+
static fromString(selector: string): FunctionSelector;
|
|
67
76
|
/**
|
|
68
77
|
* Creates an empty function selector.
|
|
69
78
|
* @returns An empty function selector.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function_selector.d.ts","sourceRoot":"","sources":["../../src/abi/function_selector.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,uBAAuB,CAAC;AAG9E,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;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;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;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;IAIzD;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE;IAQrE;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,gBAAgB;CAGjC"}
|
|
1
|
+
{"version":3,"file":"function_selector.d.ts","sourceRoot":"","sources":["../../src/abi/function_selector.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,uBAAuB,CAAC;AAG9E,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;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;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;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;IAIzD;;;;;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"}
|
|
@@ -89,6 +89,21 @@ export class FunctionSelector {
|
|
|
89
89
|
// console.log(`Function selector for ${signature} is ${selector}`);
|
|
90
90
|
return selector;
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Create an AztecAddress instance from a hex-encoded string.
|
|
94
|
+
* The input 'address' should be prefixed with '0x' or not, and have exactly 64 hex characters.
|
|
95
|
+
* Throws an error if the input length is invalid or address value is out of range.
|
|
96
|
+
*
|
|
97
|
+
* @param selector - The hex-encoded string representing the Aztec address.
|
|
98
|
+
* @returns An AztecAddress instance.
|
|
99
|
+
*/
|
|
100
|
+
static fromString(selector) {
|
|
101
|
+
const buf = Buffer.from(selector.replace(/^0x/i, ''), 'hex');
|
|
102
|
+
if (buf.length !== FunctionSelector.SIZE) {
|
|
103
|
+
throw new Error(`Invalid length ${buf.length}.`);
|
|
104
|
+
}
|
|
105
|
+
return FunctionSelector.fromBuffer(buf);
|
|
106
|
+
}
|
|
92
107
|
/**
|
|
93
108
|
* Creates an empty function selector.
|
|
94
109
|
* @returns An empty function selector.
|
|
@@ -101,4 +116,4 @@ export class FunctionSelector {
|
|
|
101
116
|
* The size of the function selector in bytes.
|
|
102
117
|
*/
|
|
103
118
|
FunctionSelector.SIZE = 4;
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2Z1bmN0aW9uX3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUFZLGdEQUFnRCxDQUFRLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQy9FLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsZ0JBQWdCLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztTQUNsRjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQTZCO1FBQzdDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQU07UUFDckIsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBaUI7UUFDcEMsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQVksRUFBRSxVQUEwQjtRQUNuRSxNQUFNLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUQsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNELDZHQUE2RztRQUM3RyxvRUFBb0U7UUFDcEUsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQWdCO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRTtZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNsRDtRQUNELE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBSztRQUNWLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDOztBQXRIRDs7R0FFRztBQUNXLHFCQUFJLEdBQUcsQ0FBQyxDQUFDIn0=
|
|
@@ -132,7 +132,7 @@ export declare class EthAddress {
|
|
|
132
132
|
/**
|
|
133
133
|
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
134
134
|
* @param buffer - Buffer to read from.
|
|
135
|
-
* @returns The
|
|
135
|
+
* @returns The EthAddress.
|
|
136
136
|
*/
|
|
137
137
|
static fromBuffer(buffer: Buffer | BufferReader): EthAddress;
|
|
138
138
|
/**
|
|
@@ -61,7 +61,7 @@ export class EthAddress {
|
|
|
61
61
|
return false;
|
|
62
62
|
}
|
|
63
63
|
else if (/^(0x|0X)?[0-9a-f]{40}$/.test(address) || /^(0x|0X)?[0-9A-F]{40}$/.test(address)) {
|
|
64
|
-
// It's ALL lowercase or ALL
|
|
64
|
+
// It's ALL lowercase or ALL uppercase.
|
|
65
65
|
return true;
|
|
66
66
|
}
|
|
67
67
|
else {
|
|
@@ -203,7 +203,7 @@ export class EthAddress {
|
|
|
203
203
|
/**
|
|
204
204
|
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
205
205
|
* @param buffer - Buffer to read from.
|
|
206
|
-
* @returns The
|
|
206
|
+
* @returns The EthAddress.
|
|
207
207
|
*/
|
|
208
208
|
static fromBuffer(buffer) {
|
|
209
209
|
const reader = BufferReader.asReader(buffer);
|
|
@@ -225,4 +225,4 @@ EthAddress.SIZE_IN_BYTES = 20;
|
|
|
225
225
|
* Represents a zero Ethereum address with 20 bytes filled with zeros.
|
|
226
226
|
*/
|
|
227
227
|
EthAddress.ZERO = new EthAddress(Buffer.alloc(EthAddress.SIZE_IN_BYTES));
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXRoLWFkZHJlc3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFVckIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDdEU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2hDO1NBQ0Y7YUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLGFBQWEsRUFBRTtZQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixVQUFVLENBQUMsYUFBYSxTQUFTLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ2hHO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQWU7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEMsTUFB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
|
|
@@ -31,7 +31,7 @@ export declare class Coordinate {
|
|
|
31
31
|
*/
|
|
32
32
|
static random(): Coordinate;
|
|
33
33
|
/**
|
|
34
|
-
* serializes the
|
|
34
|
+
* serializes the object to buffer of 2 fields.
|
|
35
35
|
* @returns A buffer serialization of the object.
|
|
36
36
|
*/
|
|
37
37
|
toFieldsBuffer(): Buffer;
|
package/dest/fields/point.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ export declare class Point {
|
|
|
65
65
|
y: bigint;
|
|
66
66
|
};
|
|
67
67
|
/**
|
|
68
|
-
* Converts the Point instance to a Buffer
|
|
68
|
+
* Converts the Point instance to a Buffer representation of the coordinates.
|
|
69
69
|
* The outputs buffer length will be 64, the length of both coordinates not represented as fields.
|
|
70
70
|
* @returns A Buffer representation of the Point instance.
|
|
71
71
|
*/
|
package/dest/fields/point.js
CHANGED
|
@@ -69,7 +69,7 @@ export class Point {
|
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
|
-
* Converts the Point instance to a Buffer
|
|
72
|
+
* Converts the Point instance to a Buffer representation of the coordinates.
|
|
73
73
|
* The outputs buffer length will be 64, the length of both coordinates not represented as fields.
|
|
74
74
|
* @returns A Buffer representation of the Point instance.
|
|
75
75
|
*/
|
|
@@ -36,8 +36,8 @@ export declare class BoundedSerialQueue {
|
|
|
36
36
|
*/
|
|
37
37
|
end(): Promise<void>;
|
|
38
38
|
/**
|
|
39
|
-
* The caller will block until fn is
|
|
40
|
-
* The fn itself is execute
|
|
39
|
+
* The caller will block until fn is successfully enqueued.
|
|
40
|
+
* The fn itself is execute asynchronously and its result discarded.
|
|
41
41
|
* TODO(AD) do we need this if we have exec()?
|
|
42
42
|
* @param fn - The function to call once unblocked.
|
|
43
43
|
*/
|
|
@@ -45,7 +45,7 @@ export declare class BoundedSerialQueue {
|
|
|
45
45
|
/**
|
|
46
46
|
* The caller will block until fn is successfully executed, and it's result returned.
|
|
47
47
|
* @param fn - The function.
|
|
48
|
-
* @returns A promise that resolves with the result once
|
|
48
|
+
* @returns A promise that resolves with the result once executed.
|
|
49
49
|
*/
|
|
50
50
|
exec<T>(fn: () => Promise<T>): Promise<T>;
|
|
51
51
|
/**
|
|
@@ -48,8 +48,8 @@ export class BoundedSerialQueue {
|
|
|
48
48
|
return this.queue.end();
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
|
-
* The caller will block until fn is
|
|
52
|
-
* The fn itself is execute
|
|
51
|
+
* The caller will block until fn is successfully enqueued.
|
|
52
|
+
* The fn itself is execute asynchronously and its result discarded.
|
|
53
53
|
* TODO(AD) do we need this if we have exec()?
|
|
54
54
|
* @param fn - The function to call once unblocked.
|
|
55
55
|
*/
|
|
@@ -71,7 +71,7 @@ export class BoundedSerialQueue {
|
|
|
71
71
|
/**
|
|
72
72
|
* The caller will block until fn is successfully executed, and it's result returned.
|
|
73
73
|
* @param fn - The function.
|
|
74
|
-
* @returns A promise that resolves with the result once
|
|
74
|
+
* @returns A promise that resolves with the result once executed.
|
|
75
75
|
*/
|
|
76
76
|
async exec(fn) {
|
|
77
77
|
await this.semaphore.acquire();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A more
|
|
2
|
+
* A more specialized fifo queue that enqueues functions to execute. Enqueued functions are executed in serial.
|
|
3
3
|
*/
|
|
4
4
|
export declare class SerialQueue {
|
|
5
5
|
private readonly queue;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MemoryFifo } from './memory_fifo.js';
|
|
2
2
|
/**
|
|
3
|
-
* A more
|
|
3
|
+
* A more specialized fifo queue that enqueues functions to execute. Enqueued functions are executed in serial.
|
|
4
4
|
*/
|
|
5
5
|
export class SerialQueue {
|
|
6
6
|
constructor() {
|
package/dest/json-rpc/convert.js
CHANGED
|
@@ -98,7 +98,7 @@ export function convertFromJsonObj(cc, obj) {
|
|
|
98
98
|
* @returns The encoded object.
|
|
99
99
|
*/
|
|
100
100
|
export function convertToJsonObj(cc, obj) {
|
|
101
|
-
// Bigint is a primitive type that needs special handling since it's not
|
|
101
|
+
// Bigint is a primitive type that needs special handling since it's not serializable
|
|
102
102
|
if (typeof obj === 'bigint') {
|
|
103
103
|
return {
|
|
104
104
|
type: 'bigint',
|
|
@@ -16,7 +16,7 @@ export declare class RunningPromise {
|
|
|
16
16
|
*/
|
|
17
17
|
start(): void;
|
|
18
18
|
/**
|
|
19
|
-
* Stops the running promise, resolves any pending
|
|
19
|
+
* Stops the running promise, resolves any pending interruptible sleep,
|
|
20
20
|
* and waits for the currently executing function to complete.
|
|
21
21
|
*/
|
|
22
22
|
stop(): Promise<void>;
|
|
@@ -25,7 +25,7 @@ export declare class RunningPromise {
|
|
|
25
25
|
* The sleep duration is determined by 'timeInMs', and it can be terminated early if the 'interruptPromise' is resolved.
|
|
26
26
|
* @param timeInMs - The time in milliseconds.
|
|
27
27
|
*/
|
|
28
|
-
private
|
|
28
|
+
private interruptibleSleep;
|
|
29
29
|
/**
|
|
30
30
|
* Checks if the running promise is currently active.
|
|
31
31
|
* @returns True if the promise is running.
|
|
@@ -21,13 +21,13 @@ export class RunningPromise {
|
|
|
21
21
|
const poll = async () => {
|
|
22
22
|
while (this.running) {
|
|
23
23
|
await this.fn();
|
|
24
|
-
await this.
|
|
24
|
+
await this.interruptibleSleep(this.pollingInterval);
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
this.runningPromise = poll();
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* Stops the running promise, resolves any pending
|
|
30
|
+
* Stops the running promise, resolves any pending interruptible sleep,
|
|
31
31
|
* and waits for the currently executing function to complete.
|
|
32
32
|
*/
|
|
33
33
|
async stop() {
|
|
@@ -40,7 +40,7 @@ export class RunningPromise {
|
|
|
40
40
|
* The sleep duration is determined by 'timeInMs', and it can be terminated early if the 'interruptPromise' is resolved.
|
|
41
41
|
* @param timeInMs - The time in milliseconds.
|
|
42
42
|
*/
|
|
43
|
-
async
|
|
43
|
+
async interruptibleSleep(timeInMs) {
|
|
44
44
|
let timeout;
|
|
45
45
|
const sleepPromise = new Promise(resolve => {
|
|
46
46
|
timeout = setTimeout(resolve, timeInMs);
|
package/dest/sleep/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* InterruptibleSleep is a utility class that allows you to create an interruptible sleep function.
|
|
3
3
|
* The sleep function can be interrupted at any time by calling the `interrupt` method, which can
|
|
4
4
|
* also specify whether the sleep should throw an error or just return. This is useful when you need
|
|
5
5
|
* to terminate long-running processes or perform cleanup tasks in response to external events.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
|
-
* const sleeper = new
|
|
8
|
+
* const sleeper = new InterruptibleSleep();
|
|
9
9
|
*
|
|
10
10
|
* async function longRunningTask() \{
|
|
11
11
|
* try \{
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
* setTimeout(() =\> sleeper.interrupt(true), 1500); // Interrupt the sleep after 1.5 seconds
|
|
20
20
|
*/
|
|
21
|
-
export declare class
|
|
21
|
+
export declare class InterruptibleSleep {
|
|
22
22
|
private interruptResolve;
|
|
23
23
|
private interruptPromise;
|
|
24
24
|
private timeouts;
|
|
@@ -43,7 +43,7 @@ export declare class InterruptableSleep {
|
|
|
43
43
|
/**
|
|
44
44
|
* Puts the current execution context to sleep for a specified duration.
|
|
45
45
|
* This simulates a blocking sleep operation by using an asynchronous function and a Promise that resolves after the given duration.
|
|
46
|
-
* The sleep function can be interrupted by the 'interrupt' method of the
|
|
46
|
+
* The sleep function can be interrupted by the 'interrupt' method of the InterruptibleSleep class.
|
|
47
47
|
*
|
|
48
48
|
* @param ms - The duration in milliseconds for which the sleep operation should last.
|
|
49
49
|
* @returns A Promise that resolves after the specified duration, allowing the use of 'await' to pause execution.
|
package/dest/sleep/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { InterruptError } from '../errors/index.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* InterruptibleSleep is a utility class that allows you to create an interruptible sleep function.
|
|
4
4
|
* The sleep function can be interrupted at any time by calling the `interrupt` method, which can
|
|
5
5
|
* also specify whether the sleep should throw an error or just return. This is useful when you need
|
|
6
6
|
* to terminate long-running processes or perform cleanup tasks in response to external events.
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
|
-
* const sleeper = new
|
|
9
|
+
* const sleeper = new InterruptibleSleep();
|
|
10
10
|
*
|
|
11
11
|
* async function longRunningTask() \{
|
|
12
12
|
* try \{
|
|
@@ -19,7 +19,7 @@ import { InterruptError } from '../errors/index.js';
|
|
|
19
19
|
*
|
|
20
20
|
* setTimeout(() =\> sleeper.interrupt(true), 1500); // Interrupt the sleep after 1.5 seconds
|
|
21
21
|
*/
|
|
22
|
-
export class
|
|
22
|
+
export class InterruptibleSleep {
|
|
23
23
|
constructor() {
|
|
24
24
|
this.interruptResolve = () => { };
|
|
25
25
|
this.interruptPromise = new Promise(resolve => (this.interruptResolve = resolve));
|
|
@@ -59,7 +59,7 @@ export class InterruptableSleep {
|
|
|
59
59
|
/**
|
|
60
60
|
* Puts the current execution context to sleep for a specified duration.
|
|
61
61
|
* This simulates a blocking sleep operation by using an asynchronous function and a Promise that resolves after the given duration.
|
|
62
|
-
* The sleep function can be interrupted by the 'interrupt' method of the
|
|
62
|
+
* The sleep function can be interrupted by the 'interrupt' method of the InterruptibleSleep class.
|
|
63
63
|
*
|
|
64
64
|
* @param ms - The duration in milliseconds for which the sleep operation should last.
|
|
65
65
|
* @returns A Promise that resolves after the specified duration, allowing the use of 'await' to pause execution.
|
package/dest/timer/elapsed.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { Timer } from './timer.js';
|
|
2
1
|
/**
|
|
3
2
|
* Measures the elapsed execution time of a function call or promise once it is awaited.
|
|
4
3
|
* @param fn - Function or promise.
|
|
5
|
-
* @returns
|
|
4
|
+
* @returns The number of ms and the result.
|
|
6
5
|
*/
|
|
7
|
-
export declare function elapsed<T>(fn: Promise<T> | (() => T | Promise<T>)): Promise<[
|
|
6
|
+
export declare function elapsed<T>(fn: Promise<T> | (() => T | Promise<T>)): Promise<[number, T]>;
|
|
8
7
|
/**
|
|
9
8
|
* Measures the elapsed execution time of a synchronous function call once it is awaited.
|
|
10
9
|
* @param fn - Function.
|
|
11
|
-
* @returns
|
|
10
|
+
* @returns The number of ms and the result.
|
|
12
11
|
*/
|
|
13
|
-
export declare function elapsedSync<T>(fn: () => T): [
|
|
12
|
+
export declare function elapsedSync<T>(fn: () => T): [number, T];
|
|
14
13
|
//# sourceMappingURL=elapsed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elapsed.d.ts","sourceRoot":"","sources":["../../src/timer/elapsed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"elapsed.d.ts","sourceRoot":"","sources":["../../src/timer/elapsed.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAI9F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAIvD"}
|
package/dest/timer/elapsed.js
CHANGED
|
@@ -2,21 +2,21 @@ import { Timer } from './timer.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Measures the elapsed execution time of a function call or promise once it is awaited.
|
|
4
4
|
* @param fn - Function or promise.
|
|
5
|
-
* @returns
|
|
5
|
+
* @returns The number of ms and the result.
|
|
6
6
|
*/
|
|
7
7
|
export async function elapsed(fn) {
|
|
8
8
|
const timer = new Timer();
|
|
9
9
|
const result = await (typeof fn === 'function' ? fn() : fn);
|
|
10
|
-
return [timer, result];
|
|
10
|
+
return [timer.ms(), result];
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Measures the elapsed execution time of a synchronous function call once it is awaited.
|
|
14
14
|
* @param fn - Function.
|
|
15
|
-
* @returns
|
|
15
|
+
* @returns The number of ms and the result.
|
|
16
16
|
*/
|
|
17
17
|
export function elapsedSync(fn) {
|
|
18
18
|
const timer = new Timer();
|
|
19
19
|
const result = fn();
|
|
20
|
-
return [timer, result];
|
|
20
|
+
return [timer.ms(), result];
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1lci9lbGFwc2VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxDQUFJLEVBQXVDO0lBQ3RFLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFDMUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFJLEVBQVc7SUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUMxQixNQUFNLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLENBQUMifQ==
|
package/package.json
CHANGED
package/src/abi/abi.ts
CHANGED
|
@@ -99,6 +99,24 @@ export interface StructType extends BasicType<'struct'> {
|
|
|
99
99
|
path: string;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
/**
|
|
103
|
+
* A contract event.
|
|
104
|
+
*/
|
|
105
|
+
export interface EventAbi {
|
|
106
|
+
/**
|
|
107
|
+
* The event name.
|
|
108
|
+
*/
|
|
109
|
+
name: string;
|
|
110
|
+
/**
|
|
111
|
+
* Fully qualified name of the event.
|
|
112
|
+
*/
|
|
113
|
+
path: string;
|
|
114
|
+
/**
|
|
115
|
+
* The fields of the event.
|
|
116
|
+
*/
|
|
117
|
+
fields: ABIVariable[];
|
|
118
|
+
}
|
|
119
|
+
|
|
102
120
|
/**
|
|
103
121
|
* Aztec.nr function types.
|
|
104
122
|
*/
|
|
@@ -109,9 +127,9 @@ export enum FunctionType {
|
|
|
109
127
|
}
|
|
110
128
|
|
|
111
129
|
/**
|
|
112
|
-
* The
|
|
130
|
+
* The abi entry of a function.
|
|
113
131
|
*/
|
|
114
|
-
export interface
|
|
132
|
+
export interface FunctionAbi {
|
|
115
133
|
/**
|
|
116
134
|
* The name of the function.
|
|
117
135
|
*/
|
|
@@ -135,9 +153,9 @@ export interface FunctionAbiHeader {
|
|
|
135
153
|
}
|
|
136
154
|
|
|
137
155
|
/**
|
|
138
|
-
* The
|
|
156
|
+
* The artifact entry of a function.
|
|
139
157
|
*/
|
|
140
|
-
export interface
|
|
158
|
+
export interface FunctionArtifact extends FunctionAbi {
|
|
141
159
|
/**
|
|
142
160
|
* The ACIR bytecode of the function.
|
|
143
161
|
*/
|
|
@@ -224,9 +242,9 @@ export interface DebugMetadata {
|
|
|
224
242
|
}
|
|
225
243
|
|
|
226
244
|
/**
|
|
227
|
-
* Defines
|
|
245
|
+
* Defines artifact of a contract.
|
|
228
246
|
*/
|
|
229
|
-
export interface
|
|
247
|
+
export interface ContractArtifact {
|
|
230
248
|
/**
|
|
231
249
|
* The name of the contract.
|
|
232
250
|
*/
|
|
@@ -234,7 +252,11 @@ export interface ContractAbi {
|
|
|
234
252
|
/**
|
|
235
253
|
* The functions of the contract.
|
|
236
254
|
*/
|
|
237
|
-
functions:
|
|
255
|
+
functions: FunctionArtifact[];
|
|
256
|
+
/**
|
|
257
|
+
* The events of the contract.
|
|
258
|
+
*/
|
|
259
|
+
events: EventAbi[];
|
|
238
260
|
|
|
239
261
|
/**
|
|
240
262
|
* The debug metadata of the contract.
|
|
@@ -258,18 +280,21 @@ export interface FunctionDebugMetadata {
|
|
|
258
280
|
}
|
|
259
281
|
|
|
260
282
|
/**
|
|
261
|
-
* Gets the debug metadata of a given function from the contract
|
|
262
|
-
* @param
|
|
283
|
+
* Gets the debug metadata of a given function from the contract artifact
|
|
284
|
+
* @param artifact - The contract build artifact
|
|
263
285
|
* @param functionName - The name of the function
|
|
264
286
|
* @returns The debug metadata of the function
|
|
265
287
|
*/
|
|
266
|
-
export function getFunctionDebugMetadata(
|
|
267
|
-
|
|
268
|
-
|
|
288
|
+
export function getFunctionDebugMetadata(
|
|
289
|
+
artifact: ContractArtifact,
|
|
290
|
+
functionName: string,
|
|
291
|
+
): FunctionDebugMetadata | undefined {
|
|
292
|
+
const functionIndex = artifact.functions.findIndex(f => f.name === functionName);
|
|
293
|
+
if (artifact.debug && functionIndex !== -1) {
|
|
269
294
|
const debugSymbols = JSON.parse(
|
|
270
|
-
inflate(Buffer.from(
|
|
295
|
+
inflate(Buffer.from(artifact.debug.debugSymbols[functionIndex], 'base64'), { to: 'string' }),
|
|
271
296
|
);
|
|
272
|
-
const files =
|
|
297
|
+
const files = artifact.debug.fileMap;
|
|
273
298
|
return {
|
|
274
299
|
debugSymbols,
|
|
275
300
|
files,
|
package/src/abi/decoder.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ABIParameter, ABIType, ABIVariable,
|
|
1
|
+
import { ABIParameter, ABIType, ABIVariable, FunctionArtifact } from '@aztec/foundation/abi';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -11,7 +11,7 @@ export type DecodedReturn = bigint | boolean | DecodedReturn[] | { [key: string]
|
|
|
11
11
|
* Missing support for integer and string.
|
|
12
12
|
*/
|
|
13
13
|
class ReturnValuesDecoder {
|
|
14
|
-
constructor(private
|
|
14
|
+
constructor(private artifact: FunctionArtifact, private flattened: Fr[]) {}
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Decodes a single return value from field to the given type.
|
|
@@ -67,13 +67,13 @@ class ReturnValuesDecoder {
|
|
|
67
67
|
* @returns The decoded return values.
|
|
68
68
|
*/
|
|
69
69
|
public decode(): DecodedReturn {
|
|
70
|
-
if (this.
|
|
70
|
+
if (this.artifact.returnTypes.length > 1) {
|
|
71
71
|
throw new Error('Multiple return values not supported');
|
|
72
72
|
}
|
|
73
|
-
if (this.
|
|
73
|
+
if (this.artifact.returnTypes.length === 0) {
|
|
74
74
|
return [];
|
|
75
75
|
}
|
|
76
|
-
return this.decodeReturn(this.
|
|
76
|
+
return this.decodeReturn(this.artifact.returnTypes[0]);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
|
|
@@ -83,7 +83,7 @@ class ReturnValuesDecoder {
|
|
|
83
83
|
* @param returnValues - The decoded return values.
|
|
84
84
|
* @returns
|
|
85
85
|
*/
|
|
86
|
-
export function decodeReturnValues(abi:
|
|
86
|
+
export function decodeReturnValues(abi: FunctionArtifact, returnValues: Fr[]) {
|
|
87
87
|
return new ReturnValuesDecoder(abi, returnValues.slice()).decode();
|
|
88
88
|
}
|
|
89
89
|
|
package/src/abi/encoder.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ABIType,
|
|
1
|
+
import { ABIType, FunctionAbi, isAddressStruct } from '@aztec/foundation/abi';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -8,7 +8,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
8
8
|
class ArgumentEncoder {
|
|
9
9
|
private flattened: Fr[] = [];
|
|
10
10
|
|
|
11
|
-
constructor(private abi:
|
|
11
|
+
constructor(private abi: FunctionAbi, private args: any[]) {}
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Encodes a single argument from the given type to field.
|
|
@@ -86,6 +86,6 @@ class ArgumentEncoder {
|
|
|
86
86
|
* @param args - The arguments to encode.
|
|
87
87
|
* @returns The encoded arguments.
|
|
88
88
|
*/
|
|
89
|
-
export function encodeArguments(abi:
|
|
89
|
+
export function encodeArguments(abi: FunctionAbi, args: any[]) {
|
|
90
90
|
return new ArgumentEncoder(abi, args).encode();
|
|
91
91
|
}
|
|
@@ -104,6 +104,22 @@ export class FunctionSelector {
|
|
|
104
104
|
return selector;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
/**
|
|
108
|
+
* Create an AztecAddress instance from a hex-encoded string.
|
|
109
|
+
* The input 'address' should be prefixed with '0x' or not, and have exactly 64 hex characters.
|
|
110
|
+
* Throws an error if the input length is invalid or address value is out of range.
|
|
111
|
+
*
|
|
112
|
+
* @param selector - The hex-encoded string representing the Aztec address.
|
|
113
|
+
* @returns An AztecAddress instance.
|
|
114
|
+
*/
|
|
115
|
+
static fromString(selector: string) {
|
|
116
|
+
const buf = Buffer.from(selector.replace(/^0x/i, ''), 'hex');
|
|
117
|
+
if (buf.length !== FunctionSelector.SIZE) {
|
|
118
|
+
throw new Error(`Invalid length ${buf.length}.`);
|
|
119
|
+
}
|
|
120
|
+
return FunctionSelector.fromBuffer(buf);
|
|
121
|
+
}
|
|
122
|
+
|
|
107
123
|
/**
|
|
108
124
|
* Creates an empty function selector.
|
|
109
125
|
* @returns An empty function selector.
|
package/src/eth-address/index.ts
CHANGED
|
@@ -70,7 +70,7 @@ export class EthAddress {
|
|
|
70
70
|
// Does not have the basic requirements of an address.
|
|
71
71
|
return false;
|
|
72
72
|
} else if (/^(0x|0X)?[0-9a-f]{40}$/.test(address) || /^(0x|0X)?[0-9A-F]{40}$/.test(address)) {
|
|
73
|
-
// It's ALL lowercase or ALL
|
|
73
|
+
// It's ALL lowercase or ALL uppercase.
|
|
74
74
|
return true;
|
|
75
75
|
} else {
|
|
76
76
|
return EthAddress.checkAddressChecksum(address);
|
|
@@ -227,7 +227,7 @@ export class EthAddress {
|
|
|
227
227
|
/**
|
|
228
228
|
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
229
229
|
* @param buffer - Buffer to read from.
|
|
230
|
-
* @returns The
|
|
230
|
+
* @returns The EthAddress.
|
|
231
231
|
*/
|
|
232
232
|
static fromBuffer(buffer: Buffer | BufferReader): EthAddress {
|
|
233
233
|
const reader = BufferReader.asReader(buffer);
|
package/src/fields/coordinate.ts
CHANGED
package/src/fields/point.ts
CHANGED
|
@@ -78,7 +78,7 @@ export class Point {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
|
-
* Converts the Point instance to a Buffer
|
|
81
|
+
* Converts the Point instance to a Buffer representation of the coordinates.
|
|
82
82
|
* The outputs buffer length will be 64, the length of both coordinates not represented as fields.
|
|
83
83
|
* @returns A Buffer representation of the Point instance.
|
|
84
84
|
*/
|
|
@@ -55,8 +55,8 @@ export class BoundedSerialQueue {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
|
-
* The caller will block until fn is
|
|
59
|
-
* The fn itself is execute
|
|
58
|
+
* The caller will block until fn is successfully enqueued.
|
|
59
|
+
* The fn itself is execute asynchronously and its result discarded.
|
|
60
60
|
* TODO(AD) do we need this if we have exec()?
|
|
61
61
|
* @param fn - The function to call once unblocked.
|
|
62
62
|
*/
|
|
@@ -78,7 +78,7 @@ export class BoundedSerialQueue {
|
|
|
78
78
|
/**
|
|
79
79
|
* The caller will block until fn is successfully executed, and it's result returned.
|
|
80
80
|
* @param fn - The function.
|
|
81
|
-
* @returns A promise that resolves with the result once
|
|
81
|
+
* @returns A promise that resolves with the result once executed.
|
|
82
82
|
*/
|
|
83
83
|
public async exec<T>(fn: () => Promise<T>): Promise<T> {
|
|
84
84
|
await this.semaphore.acquire();
|
package/src/fifo/serial_queue.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MemoryFifo } from './memory_fifo.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* A more
|
|
4
|
+
* A more specialized fifo queue that enqueues functions to execute. Enqueued functions are executed in serial.
|
|
5
5
|
*/
|
|
6
6
|
export class SerialQueue {
|
|
7
7
|
private readonly queue = new MemoryFifo<() => Promise<void>>();
|
package/src/json-rpc/README.md
CHANGED
|
@@ -12,7 +12,7 @@ json-rpc
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
Each createJsonRpcClient and JsonRpcServer call needs a map of classes that will be translated in input and output values.
|
|
15
|
-
By default, Buffer is handled, but other
|
|
15
|
+
By default, Buffer is handled, but other user-made classes need to define toString() and static fromString() like so:
|
|
16
16
|
|
|
17
17
|
```
|
|
18
18
|
class PublicKey {
|
package/src/json-rpc/convert.ts
CHANGED
|
@@ -117,7 +117,7 @@ export function convertFromJsonObj(cc: ClassConverter, obj: any): any {
|
|
|
117
117
|
* @returns The encoded object.
|
|
118
118
|
*/
|
|
119
119
|
export function convertToJsonObj(cc: ClassConverter, obj: any): any {
|
|
120
|
-
// Bigint is a primitive type that needs special handling since it's not
|
|
120
|
+
// Bigint is a primitive type that needs special handling since it's not serializable
|
|
121
121
|
if (typeof obj === 'bigint') {
|
|
122
122
|
return {
|
|
123
123
|
type: 'bigint',
|
|
@@ -20,14 +20,14 @@ export class RunningPromise {
|
|
|
20
20
|
const poll = async () => {
|
|
21
21
|
while (this.running) {
|
|
22
22
|
await this.fn();
|
|
23
|
-
await this.
|
|
23
|
+
await this.interruptibleSleep(this.pollingInterval);
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
this.runningPromise = poll();
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* Stops the running promise, resolves any pending
|
|
30
|
+
* Stops the running promise, resolves any pending interruptible sleep,
|
|
31
31
|
* and waits for the currently executing function to complete.
|
|
32
32
|
*/
|
|
33
33
|
async stop(): Promise<void> {
|
|
@@ -41,7 +41,7 @@ export class RunningPromise {
|
|
|
41
41
|
* The sleep duration is determined by 'timeInMs', and it can be terminated early if the 'interruptPromise' is resolved.
|
|
42
42
|
* @param timeInMs - The time in milliseconds.
|
|
43
43
|
*/
|
|
44
|
-
private async
|
|
44
|
+
private async interruptibleSleep(timeInMs: number) {
|
|
45
45
|
let timeout!: NodeJS.Timeout;
|
|
46
46
|
const sleepPromise = new Promise(resolve => {
|
|
47
47
|
timeout = setTimeout(resolve, timeInMs);
|
package/src/sleep/index.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { InterruptError } from '../errors/index.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* InterruptibleSleep is a utility class that allows you to create an interruptible sleep function.
|
|
5
5
|
* The sleep function can be interrupted at any time by calling the `interrupt` method, which can
|
|
6
6
|
* also specify whether the sleep should throw an error or just return. This is useful when you need
|
|
7
7
|
* to terminate long-running processes or perform cleanup tasks in response to external events.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
|
-
* const sleeper = new
|
|
10
|
+
* const sleeper = new InterruptibleSleep();
|
|
11
11
|
*
|
|
12
12
|
* async function longRunningTask() \{
|
|
13
13
|
* try \{
|
|
@@ -20,7 +20,7 @@ import { InterruptError } from '../errors/index.js';
|
|
|
20
20
|
*
|
|
21
21
|
* setTimeout(() =\> sleeper.interrupt(true), 1500); // Interrupt the sleep after 1.5 seconds
|
|
22
22
|
*/
|
|
23
|
-
export class
|
|
23
|
+
export class InterruptibleSleep {
|
|
24
24
|
private interruptResolve: (shouldThrow: boolean) => void = () => {};
|
|
25
25
|
private interruptPromise = new Promise<boolean>(resolve => (this.interruptResolve = resolve));
|
|
26
26
|
private timeouts: NodeJS.Timeout[] = [];
|
|
@@ -61,7 +61,7 @@ export class InterruptableSleep {
|
|
|
61
61
|
/**
|
|
62
62
|
* Puts the current execution context to sleep for a specified duration.
|
|
63
63
|
* This simulates a blocking sleep operation by using an asynchronous function and a Promise that resolves after the given duration.
|
|
64
|
-
* The sleep function can be interrupted by the 'interrupt' method of the
|
|
64
|
+
* The sleep function can be interrupted by the 'interrupt' method of the InterruptibleSleep class.
|
|
65
65
|
*
|
|
66
66
|
* @param ms - The duration in milliseconds for which the sleep operation should last.
|
|
67
67
|
* @returns A Promise that resolves after the specified duration, allowing the use of 'await' to pause execution.
|
package/src/timer/elapsed.ts
CHANGED
|
@@ -3,21 +3,21 @@ import { Timer } from './timer.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* Measures the elapsed execution time of a function call or promise once it is awaited.
|
|
5
5
|
* @param fn - Function or promise.
|
|
6
|
-
* @returns
|
|
6
|
+
* @returns The number of ms and the result.
|
|
7
7
|
*/
|
|
8
|
-
export async function elapsed<T>(fn: Promise<T> | (() => T | Promise<T>)): Promise<[
|
|
8
|
+
export async function elapsed<T>(fn: Promise<T> | (() => T | Promise<T>)): Promise<[number, T]> {
|
|
9
9
|
const timer = new Timer();
|
|
10
10
|
const result = await (typeof fn === 'function' ? fn() : fn);
|
|
11
|
-
return [timer, result];
|
|
11
|
+
return [timer.ms(), result];
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Measures the elapsed execution time of a synchronous function call once it is awaited.
|
|
16
16
|
* @param fn - Function.
|
|
17
|
-
* @returns
|
|
17
|
+
* @returns The number of ms and the result.
|
|
18
18
|
*/
|
|
19
|
-
export function elapsedSync<T>(fn: () => T): [
|
|
19
|
+
export function elapsedSync<T>(fn: () => T): [number, T] {
|
|
20
20
|
const timer = new Timer();
|
|
21
21
|
const result = fn();
|
|
22
|
-
return [timer, result];
|
|
22
|
+
return [timer.ms(), result];
|
|
23
23
|
}
|