@nomicfoundation/hardhat-utils 3.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +9 -0
- package/README.md +5 -0
- package/dist/src/bigint.d.ts +32 -0
- package/dist/src/bigint.d.ts.map +1 -0
- package/dist/src/bigint.js +54 -0
- package/dist/src/bigint.js.map +1 -0
- package/dist/src/bytecode.d.ts +27 -0
- package/dist/src/bytecode.d.ts.map +1 -0
- package/dist/src/bytecode.js +60 -0
- package/dist/src/bytecode.js.map +1 -0
- package/dist/src/bytes.d.ts +34 -0
- package/dist/src/bytes.d.ts.map +1 -0
- package/dist/src/bytes.js +47 -0
- package/dist/src/bytes.js.map +1 -0
- package/dist/src/ci.d.ts +7 -0
- package/dist/src/ci.d.ts.map +1 -0
- package/dist/src/ci.js +18 -0
- package/dist/src/ci.js.map +1 -0
- package/dist/src/common-errors.d.ts +5 -0
- package/dist/src/common-errors.d.ts.map +1 -0
- package/dist/src/common-errors.js +7 -0
- package/dist/src/common-errors.js.map +1 -0
- package/dist/src/crypto.d.ts +25 -0
- package/dist/src/crypto.d.ts.map +1 -0
- package/dist/src/crypto.js +32 -0
- package/dist/src/crypto.js.map +1 -0
- package/dist/src/date.d.ts +21 -0
- package/dist/src/date.d.ts.map +1 -0
- package/dist/src/date.js +27 -0
- package/dist/src/date.js.map +1 -0
- package/dist/src/debug.d.ts +16 -0
- package/dist/src/debug.d.ts.map +1 -0
- package/dist/src/debug.js +28 -0
- package/dist/src/debug.js.map +1 -0
- package/dist/src/error.d.ts +80 -0
- package/dist/src/error.d.ts.map +1 -0
- package/dist/src/error.js +97 -0
- package/dist/src/error.js.map +1 -0
- package/dist/src/errors/bytecode.d.ts +18 -0
- package/dist/src/errors/bytecode.d.ts.map +1 -0
- package/dist/src/errors/bytecode.js +59 -0
- package/dist/src/errors/bytecode.js.map +1 -0
- package/dist/src/errors/fs.d.ts +25 -0
- package/dist/src/errors/fs.d.ts.map +1 -0
- package/dist/src/errors/fs.js +41 -0
- package/dist/src/errors/fs.js.map +1 -0
- package/dist/src/errors/package.d.ts +8 -0
- package/dist/src/errors/package.d.ts.map +1 -0
- package/dist/src/errors/package.js +12 -0
- package/dist/src/errors/package.js.map +1 -0
- package/dist/src/errors/request.d.ts +25 -0
- package/dist/src/errors/request.d.ts.map +1 -0
- package/dist/src/errors/request.js +64 -0
- package/dist/src/errors/request.js.map +1 -0
- package/dist/src/errors/subprocess.d.ts +8 -0
- package/dist/src/errors/subprocess.d.ts.map +1 -0
- package/dist/src/errors/subprocess.js +12 -0
- package/dist/src/errors/subprocess.js.map +1 -0
- package/dist/src/eth.d.ts +56 -0
- package/dist/src/eth.d.ts.map +1 -0
- package/dist/src/eth.js +78 -0
- package/dist/src/eth.js.map +1 -0
- package/dist/src/fs.d.ts +241 -0
- package/dist/src/fs.d.ts.map +1 -0
- package/dist/src/fs.js +581 -0
- package/dist/src/fs.js.map +1 -0
- package/dist/src/global-dir.d.ts +28 -0
- package/dist/src/global-dir.d.ts.map +1 -0
- package/dist/src/global-dir.js +42 -0
- package/dist/src/global-dir.js.map +1 -0
- package/dist/src/hex.d.ts +117 -0
- package/dist/src/hex.d.ts.map +1 -0
- package/dist/src/hex.js +187 -0
- package/dist/src/hex.js.map +1 -0
- package/dist/src/internal/bytecode.d.ts +45 -0
- package/dist/src/internal/bytecode.d.ts.map +1 -0
- package/dist/src/internal/bytecode.js +73 -0
- package/dist/src/internal/bytecode.js.map +1 -0
- package/dist/src/internal/eth.d.ts +21 -0
- package/dist/src/internal/eth.d.ts.map +1 -0
- package/dist/src/internal/eth.js +58 -0
- package/dist/src/internal/eth.js.map +1 -0
- package/dist/src/internal/global-dir.d.ts +4 -0
- package/dist/src/internal/global-dir.d.ts.map +1 -0
- package/dist/src/internal/global-dir.js +6 -0
- package/dist/src/internal/global-dir.js.map +1 -0
- package/dist/src/internal/hex.d.ts +2 -0
- package/dist/src/internal/hex.d.ts.map +1 -0
- package/dist/src/internal/hex.js +16 -0
- package/dist/src/internal/hex.js.map +1 -0
- package/dist/src/internal/lang.d.ts +2 -0
- package/dist/src/internal/lang.d.ts.map +1 -0
- package/dist/src/internal/lang.js +9 -0
- package/dist/src/internal/lang.js.map +1 -0
- package/dist/src/internal/package.d.ts +2 -0
- package/dist/src/internal/package.d.ts.map +1 -0
- package/dist/src/internal/package.js +15 -0
- package/dist/src/internal/package.js.map +1 -0
- package/dist/src/internal/request.d.ts +20 -0
- package/dist/src/internal/request.d.ts.map +1 -0
- package/dist/src/internal/request.js +101 -0
- package/dist/src/internal/request.js.map +1 -0
- package/dist/src/lang.d.ts +30 -0
- package/dist/src/lang.d.ts.map +1 -0
- package/dist/src/lang.js +41 -0
- package/dist/src/lang.js.map +1 -0
- package/dist/src/number.d.ts +23 -0
- package/dist/src/number.d.ts.map +1 -0
- package/dist/src/number.js +30 -0
- package/dist/src/number.js.map +1 -0
- package/dist/src/package.d.ts +75 -0
- package/dist/src/package.d.ts.map +1 -0
- package/dist/src/package.js +97 -0
- package/dist/src/package.js.map +1 -0
- package/dist/src/path.d.ts +26 -0
- package/dist/src/path.d.ts.map +1 -0
- package/dist/src/path.js +38 -0
- package/dist/src/path.js.map +1 -0
- package/dist/src/request.d.ts +118 -0
- package/dist/src/request.d.ts.map +1 -0
- package/dist/src/request.js +208 -0
- package/dist/src/request.js.map +1 -0
- package/dist/src/stream.d.ts +10 -0
- package/dist/src/stream.d.ts.map +1 -0
- package/dist/src/stream.js +16 -0
- package/dist/src/stream.js.map +1 -0
- package/dist/src/string.d.ts +45 -0
- package/dist/src/string.d.ts.map +1 -0
- package/dist/src/string.js +60 -0
- package/dist/src/string.js.map +1 -0
- package/dist/src/subprocess.d.ts +13 -0
- package/dist/src/subprocess.d.ts.map +1 -0
- package/dist/src/subprocess.js +33 -0
- package/dist/src/subprocess.js.map +1 -0
- package/dist/src/synchronization.d.ts +6 -0
- package/dist/src/synchronization.d.ts.map +1 -0
- package/dist/src/synchronization.js +107 -0
- package/dist/src/synchronization.js.map +1 -0
- package/package.json +90 -0
- package/src/bigint.ts +61 -0
- package/src/bytecode.ts +90 -0
- package/src/bytes.ts +51 -0
- package/src/ci.ts +19 -0
- package/src/common-errors.ts +7 -0
- package/src/crypto.ts +35 -0
- package/src/date.ts +28 -0
- package/src/debug.ts +38 -0
- package/src/error.ts +105 -0
- package/src/errors/bytecode.ts +75 -0
- package/src/errors/fs.ts +47 -0
- package/src/errors/package.ts +13 -0
- package/src/errors/request.ts +84 -0
- package/src/errors/subprocess.ts +17 -0
- package/src/eth.ts +91 -0
- package/src/fs.ts +678 -0
- package/src/global-dir.ts +51 -0
- package/src/hex.ts +232 -0
- package/src/internal/bytecode.ts +129 -0
- package/src/internal/eth.ts +71 -0
- package/src/internal/global-dir.ts +10 -0
- package/src/internal/hex.ts +21 -0
- package/src/internal/lang.ts +12 -0
- package/src/internal/package.ts +15 -0
- package/src/internal/request.ts +165 -0
- package/src/lang.ts +48 -0
- package/src/number.ts +38 -0
- package/src/package.ts +143 -0
- package/src/path.ts +45 -0
- package/src/request.ts +341 -0
- package/src/stream.ts +16 -0
- package/src/string.ts +69 -0
- package/src/subprocess.ts +46 -0
- package/src/synchronization.ts +126 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract custom error class, which inherits from the built-in Error class,
|
|
3
|
+
* making sure that the standard errror properties are set, and the stack trace
|
|
4
|
+
* is not polluted with the custom error class' code.
|
|
5
|
+
*
|
|
6
|
+
* This class supports the `cause` property, which can be used to pass the
|
|
7
|
+
* original error that caused the custom error to be thrown. Note that it needs
|
|
8
|
+
* to be an instance of the built-in Error class, or a subclass of it. See `ensureError`
|
|
9
|
+
* for a convinient way of using it.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* class MyCustomError extends CustomError {
|
|
14
|
+
* }
|
|
15
|
+
*
|
|
16
|
+
* try {
|
|
17
|
+
* mayThrow();
|
|
18
|
+
* } catch (error) {
|
|
19
|
+
* ensureError(error);
|
|
20
|
+
* throw new MyCustomError('Something went wrong', error);
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export class CustomError extends Error {
|
|
25
|
+
stack;
|
|
26
|
+
constructor(message, cause) {
|
|
27
|
+
super(message, cause !== undefined ? { cause } : undefined);
|
|
28
|
+
this.name = this.constructor.name;
|
|
29
|
+
Error.captureStackTrace(this, this.constructor);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Ensures that the provided value is an instance of an error.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* This function is meant to be used in a catch block to ensure that you caught the right error.
|
|
37
|
+
*
|
|
38
|
+
* ```ts
|
|
39
|
+
* // Ensuring that you got an Error
|
|
40
|
+
* try {
|
|
41
|
+
* mayThrow();
|
|
42
|
+
* } catch (error) {
|
|
43
|
+
* ensureError(error);
|
|
44
|
+
* console.err(error.message);
|
|
45
|
+
* }
|
|
46
|
+
*
|
|
47
|
+
* // Ensuring that you got a specific error
|
|
48
|
+
* try {
|
|
49
|
+
* mayThrow();
|
|
50
|
+
* } catch (error) {
|
|
51
|
+
* ensureError(error, MyError);
|
|
52
|
+
* console.err(error.myMessage());
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @param thrown The value to check.
|
|
57
|
+
* @param ErrorType The error type to check against.
|
|
58
|
+
* @throws The value if its not an instance of the specified error type.
|
|
59
|
+
*/
|
|
60
|
+
export function ensureError(thrown, ErrorType) {
|
|
61
|
+
if (ErrorType === undefined) {
|
|
62
|
+
if (thrown instanceof Error) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
throw thrown;
|
|
66
|
+
}
|
|
67
|
+
if (thrown instanceof ErrorType) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
throw thrown;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Throws an error for an unreachable code path. This function is typically
|
|
74
|
+
* used in a default case of a switch statement where all possible values of
|
|
75
|
+
* the switched variable should be handled in other cases. If the default case
|
|
76
|
+
* is reached, it means that an unexpected value was encountered, so an error
|
|
77
|
+
* is thrown.
|
|
78
|
+
*
|
|
79
|
+
* Note: The `@typescript-eslint/switch-exhaustiveness-check` rule checks for
|
|
80
|
+
* exhaustiveness in switch statements by comparing the types of the switch
|
|
81
|
+
* expression and the case clauses. However, it only works with union types and
|
|
82
|
+
* enum types. If you're switching on the result of the `typeof` operator or
|
|
83
|
+
* any other expression that doesn't return a union type or an enum type, this
|
|
84
|
+
* rule cannot enforce exhaustiveness. In such cases, you can use this function
|
|
85
|
+
* in the default case to ensure that an error is thrown if an unexpected value
|
|
86
|
+
* is encountered.
|
|
87
|
+
*
|
|
88
|
+
* @param _value The unexpected value. This parameter is unused and is only for
|
|
89
|
+
* the purpose of type checking.
|
|
90
|
+
* @param error The error to throw.
|
|
91
|
+
* @returns This function never returns normally. It always throws an error.
|
|
92
|
+
* @throws Will throw an error when called.
|
|
93
|
+
*/
|
|
94
|
+
export function unreachable(_value, error) {
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAgB,WAAY,SAAQ,KAAK;IAC7B,KAAK,CAAU;IAE/B,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,WAAW,CACzB,MAAe,EACf,SAA0C;IAE1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,MAAM,CAAC;IACf,CAAC;IAED,IAAI,MAAM,YAAY,SAAS,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,WAAW,CAAC,MAAa,EAAE,KAAY;IACrD,MAAM,KAAK,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { LibraryAddresses, LibraryLink } from "../internal/bytecode.js";
|
|
2
|
+
import { CustomError } from "../error.js";
|
|
3
|
+
export declare class InvalidLibraryAddressError extends CustomError {
|
|
4
|
+
constructor(libraries: LibraryAddresses);
|
|
5
|
+
}
|
|
6
|
+
export declare class AmbiguousLibraryNameError extends CustomError {
|
|
7
|
+
constructor(libraries: Record<string, LibraryLink[]>);
|
|
8
|
+
}
|
|
9
|
+
export declare class UnnecessaryLibraryError extends CustomError {
|
|
10
|
+
constructor(libraries: string[]);
|
|
11
|
+
}
|
|
12
|
+
export declare class OverlappingLibrariesError extends CustomError {
|
|
13
|
+
constructor(libraries: string[]);
|
|
14
|
+
}
|
|
15
|
+
export declare class MissingLibrariesError extends CustomError {
|
|
16
|
+
constructor(libraries: string[]);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=bytecode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytecode.d.ts","sourceRoot":"","sources":["../../../src/errors/bytecode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAa,0BAA2B,SAAQ,WAAW;gBAC7C,SAAS,EAAE,gBAAgB;CAUxC;AAED,qBAAa,yBAA0B,SAAQ,WAAW;gBAC5C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;CAerD;AAED,qBAAa,uBAAwB,SAAQ,WAAW;gBAC1C,SAAS,EAAE,MAAM,EAAE;CAUhC;AAED,qBAAa,yBAA0B,SAAQ,WAAW;gBAC5C,SAAS,EAAE,MAAM,EAAE;CAUhC;AAED,qBAAa,qBAAsB,SAAQ,WAAW;gBACxC,SAAS,EAAE,MAAM,EAAE;CAYhC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { CustomError } from "../error.js";
|
|
2
|
+
export class InvalidLibraryAddressError extends CustomError {
|
|
3
|
+
constructor(libraries) {
|
|
4
|
+
const formattedLibraries = Object.entries(libraries)
|
|
5
|
+
.map(([libraryName, address]) => `\t* "${libraryName}": "${address}"`)
|
|
6
|
+
.join("\n");
|
|
7
|
+
super(`The following libraries have invalid addresses:
|
|
8
|
+
${formattedLibraries}
|
|
9
|
+
|
|
10
|
+
Please provide valid Ethereum addresses for these libraries.`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class AmbiguousLibraryNameError extends CustomError {
|
|
14
|
+
constructor(libraries) {
|
|
15
|
+
const formattedLibraries = Object.entries(libraries)
|
|
16
|
+
.map(([providedLibraryName, matchingLibraries]) => `\t* "${providedLibraryName}":\n${matchingLibraries
|
|
17
|
+
.map(({ libraryFqn }) => `\t\t* "${libraryFqn}"`)
|
|
18
|
+
.join("\n")}`)
|
|
19
|
+
.join("\n");
|
|
20
|
+
super(`The following libraries may resolve to multiple libraries:
|
|
21
|
+
${formattedLibraries}
|
|
22
|
+
|
|
23
|
+
Please provide the fully qualified name for these libraries.`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class UnnecessaryLibraryError extends CustomError {
|
|
27
|
+
constructor(libraries) {
|
|
28
|
+
const formattedLibraries = libraries
|
|
29
|
+
.map((libraryName) => `\t* "${libraryName}"`)
|
|
30
|
+
.join("\n");
|
|
31
|
+
super(`The following libraries are not referenced by the contract:
|
|
32
|
+
${formattedLibraries}
|
|
33
|
+
|
|
34
|
+
Please provide only the libraries that are needed.`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export class OverlappingLibrariesError extends CustomError {
|
|
38
|
+
constructor(libraries) {
|
|
39
|
+
const formattedLibraries = libraries
|
|
40
|
+
.map((libraryFqn) => `\t* "${libraryFqn}"`)
|
|
41
|
+
.join("\n");
|
|
42
|
+
super(`The following libraries are provided more than once:
|
|
43
|
+
${formattedLibraries}
|
|
44
|
+
|
|
45
|
+
Please ensure that each library is provided only once, either by its name or its fully qualified name.`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export class MissingLibrariesError extends CustomError {
|
|
49
|
+
constructor(libraries) {
|
|
50
|
+
const formattedLibraries = libraries
|
|
51
|
+
.map((libraryFqn) => `\t* "${libraryFqn}"`)
|
|
52
|
+
.join("\n");
|
|
53
|
+
super(`The following libraries are missing:
|
|
54
|
+
${formattedLibraries}
|
|
55
|
+
|
|
56
|
+
Please provide all the required libraries.`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=bytecode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytecode.js","sourceRoot":"","sources":["../../../src/errors/bytecode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IACzD,YAAY,SAA2B;QACrC,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;aACjD,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,WAAW,OAAO,OAAO,GAAG,CAAC;aACrE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,KAAK,CAAC;EACR,kBAAkB;;6DAEyC,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IACxD,YAAY,SAAwC;QAClD,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;aACjD,GAAG,CACF,CAAC,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAC3C,QAAQ,mBAAmB,OAAO,iBAAiB;aAChD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,UAAU,GAAG,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,EAAE,CAClB;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,KAAK,CAAC;EACR,kBAAkB;;6DAEyC,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IACtD,YAAY,SAAmB;QAC7B,MAAM,kBAAkB,GAAG,SAAS;aACjC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,WAAW,GAAG,CAAC;aAC5C,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,KAAK,CAAC;EACR,kBAAkB;;mDAE+B,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IACxD,YAAY,SAAmB;QAC7B,MAAM,kBAAkB,GAAG,SAAS;aACjC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,UAAU,GAAG,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,KAAK,CAAC;EACR,kBAAkB;;uGAEmF,CAAC,CAAC;IACvG,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IACpD,YAAY,SAAmB;QAC7B,MAAM,kBAAkB,GAAG,SAAS;aACjC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,UAAU,GAAG,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,KAAK,CACH;EACJ,kBAAkB;;2CAEuB,CACtC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CustomError } from "../error.js";
|
|
2
|
+
export declare class FileSystemAccessError extends CustomError {
|
|
3
|
+
}
|
|
4
|
+
export declare class FileNotFoundError extends CustomError {
|
|
5
|
+
constructor(filePath: string, cause?: Error);
|
|
6
|
+
}
|
|
7
|
+
export declare class FileAlreadyExistsError extends CustomError {
|
|
8
|
+
constructor(filePath: string, cause?: Error);
|
|
9
|
+
}
|
|
10
|
+
export declare class InvalidFileFormatError extends CustomError {
|
|
11
|
+
constructor(filePath: string, cause: Error);
|
|
12
|
+
}
|
|
13
|
+
export declare class JsonSerializationError extends CustomError {
|
|
14
|
+
constructor(filePath: string, cause: Error);
|
|
15
|
+
}
|
|
16
|
+
export declare class NotADirectoryError extends CustomError {
|
|
17
|
+
constructor(filePath: string, cause: Error);
|
|
18
|
+
}
|
|
19
|
+
export declare class IsDirectoryError extends CustomError {
|
|
20
|
+
constructor(filePath: string, cause: Error);
|
|
21
|
+
}
|
|
22
|
+
export declare class DirectoryNotEmptyError extends CustomError {
|
|
23
|
+
constructor(filePath: string, cause: Error);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/errors/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,qBAAa,qBAAsB,SAAQ,WAAW;CAAG;AAEzD,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAG5C;AAED,qBAAa,sBAAuB,SAAQ,WAAW;gBACzC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAG5C;AAED,qBAAa,sBAAuB,SAAQ,WAAW;gBACzC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAG3C;AAED,qBAAa,sBAAuB,SAAQ,WAAW;gBACzC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAG3C;AAED,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAG3C;AAED,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAG3C;AAED,qBAAa,sBAAuB,SAAQ,WAAW;gBACzC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAG3C"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CustomError } from "../error.js";
|
|
2
|
+
// We use this error to encapsulate any other error possibly thrown by node's
|
|
3
|
+
// fs apis, as sometimes their errors don't have stack traces.
|
|
4
|
+
export class FileSystemAccessError extends CustomError {
|
|
5
|
+
}
|
|
6
|
+
export class FileNotFoundError extends CustomError {
|
|
7
|
+
constructor(filePath, cause) {
|
|
8
|
+
super(`File ${filePath} not found`, cause);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class FileAlreadyExistsError extends CustomError {
|
|
12
|
+
constructor(filePath, cause) {
|
|
13
|
+
super(`File ${filePath} already exists`, cause);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export class InvalidFileFormatError extends CustomError {
|
|
17
|
+
constructor(filePath, cause) {
|
|
18
|
+
super(`Invalid file format: ${filePath}`, cause);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class JsonSerializationError extends CustomError {
|
|
22
|
+
constructor(filePath, cause) {
|
|
23
|
+
super(`Error serializing JSON file ${filePath}`, cause);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class NotADirectoryError extends CustomError {
|
|
27
|
+
constructor(filePath, cause) {
|
|
28
|
+
super(`Path ${filePath} is not a directory`, cause);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class IsDirectoryError extends CustomError {
|
|
32
|
+
constructor(filePath, cause) {
|
|
33
|
+
super(`Path ${filePath} is a directory`, cause);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class DirectoryNotEmptyError extends CustomError {
|
|
37
|
+
constructor(filePath, cause) {
|
|
38
|
+
super(`Directory ${filePath} is not empty`, cause);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/errors/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,6EAA6E;AAC7E,8DAA8D;AAC9D,MAAM,OAAO,qBAAsB,SAAQ,WAAW;CAAG;AAEzD,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,YAAY,QAAgB,EAAE,KAAa;QACzC,KAAK,CAAC,QAAQ,QAAQ,YAAY,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD,YAAY,QAAgB,EAAE,KAAa;QACzC,KAAK,CAAC,QAAQ,QAAQ,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD,YAAY,QAAgB,EAAE,KAAY;QACxC,KAAK,CAAC,wBAAwB,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD,YAAY,QAAgB,EAAE,KAAY;QACxC,KAAK,CAAC,+BAA+B,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD,YAAY,QAAgB,EAAE,KAAY;QACxC,KAAK,CAAC,QAAQ,QAAQ,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC/C,YAAY,QAAgB,EAAE,KAAY;QACxC,KAAK,CAAC,QAAQ,QAAQ,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD,YAAY,QAAgB,EAAE,KAAY;QACxC,KAAK,CAAC,aAAa,QAAQ,eAAe,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CustomError } from "../error.js";
|
|
2
|
+
export declare class PackageJsonNotFoundError extends CustomError {
|
|
3
|
+
constructor(filePathOrUrl: string, cause?: Error);
|
|
4
|
+
}
|
|
5
|
+
export declare class PackageJsonReadError extends CustomError {
|
|
6
|
+
constructor(packageJsonPath: string, cause?: Error);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/errors/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAa,wBAAyB,SAAQ,WAAW;gBAC3C,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGjD;AAED,qBAAa,oBAAqB,SAAQ,WAAW;gBACvC,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGnD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CustomError } from "../error.js";
|
|
2
|
+
export class PackageJsonNotFoundError extends CustomError {
|
|
3
|
+
constructor(filePathOrUrl, cause) {
|
|
4
|
+
super(`No package.json found for ${filePathOrUrl}`, cause);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class PackageJsonReadError extends CustomError {
|
|
8
|
+
constructor(packageJsonPath, cause) {
|
|
9
|
+
super(`Failed to read package.json at ${packageJsonPath}`, cause);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../../src/errors/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IACvD,YAAY,aAAqB,EAAE,KAAa;QAC9C,KAAK,CAAC,6BAA6B,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IACnD,YAAY,eAAuB,EAAE,KAAa;QAChD,KAAK,CAAC,kCAAkC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type UndiciT from "undici";
|
|
2
|
+
import { CustomError } from "../error.js";
|
|
3
|
+
export declare class RequestError extends CustomError {
|
|
4
|
+
constructor(url: string, type: UndiciT.Dispatcher.HttpMethod, cause?: Error);
|
|
5
|
+
}
|
|
6
|
+
export declare class DownloadError extends CustomError {
|
|
7
|
+
constructor(url: string, cause?: Error);
|
|
8
|
+
}
|
|
9
|
+
export declare class DispatcherError extends CustomError {
|
|
10
|
+
constructor(message: string, cause?: Error);
|
|
11
|
+
}
|
|
12
|
+
export declare class RequestTimeoutError extends CustomError {
|
|
13
|
+
constructor(url: string, cause?: Error);
|
|
14
|
+
}
|
|
15
|
+
export declare class ConnectionRefusedError extends CustomError {
|
|
16
|
+
constructor(url: string, cause?: Error);
|
|
17
|
+
}
|
|
18
|
+
export declare class ResponseStatusCodeError extends CustomError {
|
|
19
|
+
#private;
|
|
20
|
+
readonly statusCode: number;
|
|
21
|
+
readonly headers: string[] | Record<string, string | string[] | undefined> | null;
|
|
22
|
+
readonly body: null | Record<string, any> | string;
|
|
23
|
+
constructor(url: string, cause: Error);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/errors/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,qBAAa,YAAa,SAAQ,WAAW;gBAC/B,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK;CAG5E;AAED,qBAAa,aAAc,SAAQ,WAAW;gBAChC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGvC;AAED,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAG3C;AAED,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGvC;AAED,qBAAa,sBAAuB,SAAQ,WAAW;gBACzC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAGvC;AAED,qBAAa,uBAAwB,SAAQ,WAAW;;IACtD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,OAAO,EACnB,MAAM,EAAE,GACR,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GAC7C,IAAI,CAAC;IACT,SAAgB,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;gBAE9C,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAuCtC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { CustomError } from "../error.js";
|
|
2
|
+
import { sanitizeUrl } from "../internal/request.js";
|
|
3
|
+
import { isObject } from "../lang.js";
|
|
4
|
+
export class RequestError extends CustomError {
|
|
5
|
+
constructor(url, type, cause) {
|
|
6
|
+
super(`Failed to make ${type} request to ${sanitizeUrl(url)}`, cause);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class DownloadError extends CustomError {
|
|
10
|
+
constructor(url, cause) {
|
|
11
|
+
super(`Failed to download file from ${sanitizeUrl(url)}`, cause);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class DispatcherError extends CustomError {
|
|
15
|
+
constructor(message, cause) {
|
|
16
|
+
super(`Failed to create dispatcher: ${message}`, cause);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class RequestTimeoutError extends CustomError {
|
|
20
|
+
constructor(url, cause) {
|
|
21
|
+
super(`Request to ${sanitizeUrl(url)} timed out`, cause);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class ConnectionRefusedError extends CustomError {
|
|
25
|
+
constructor(url, cause) {
|
|
26
|
+
super(`Connection to ${sanitizeUrl(url)} was refused`, cause);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class ResponseStatusCodeError extends CustomError {
|
|
30
|
+
statusCode;
|
|
31
|
+
headers;
|
|
32
|
+
body;
|
|
33
|
+
constructor(url, cause) {
|
|
34
|
+
super(`Received an unexpected status code from ${sanitizeUrl(url)}`, cause);
|
|
35
|
+
this.statusCode =
|
|
36
|
+
"statusCode" in cause && typeof cause.statusCode === "number"
|
|
37
|
+
? cause.statusCode
|
|
38
|
+
: -1;
|
|
39
|
+
this.headers = this.#extractHeaders(cause);
|
|
40
|
+
this.body = "body" in cause && isObject(cause.body) ? cause.body : null;
|
|
41
|
+
}
|
|
42
|
+
#extractHeaders(cause) {
|
|
43
|
+
if ("headers" in cause) {
|
|
44
|
+
const headers = cause.headers;
|
|
45
|
+
if (Array.isArray(headers)) {
|
|
46
|
+
return headers;
|
|
47
|
+
}
|
|
48
|
+
else if (this.#isValidHeaders(headers)) {
|
|
49
|
+
return headers;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
#isValidHeaders(headers) {
|
|
55
|
+
if (!isObject(headers)) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
return Object.values(headers).every((header) => typeof header === "string" ||
|
|
59
|
+
(Array.isArray(header) &&
|
|
60
|
+
header.every((item) => typeof item === "string")) ||
|
|
61
|
+
header === undefined);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/errors/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CustomError } from "../error.js";
|
|
2
|
+
export declare class SubprocessFileNotFoundError extends CustomError {
|
|
3
|
+
constructor(filePath: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class SubprocessPathIsDirectoryError extends CustomError {
|
|
6
|
+
constructor(path: string);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=subprocess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subprocess.d.ts","sourceRoot":"","sources":["../../../src/errors/subprocess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAa,2BAA4B,SAAQ,WAAW;gBAC9C,QAAQ,EAAE,MAAM;CAK7B;AAED,qBAAa,8BAA+B,SAAQ,WAAW;gBACjD,IAAI,EAAE,MAAM;CAKzB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CustomError } from "../error.js";
|
|
2
|
+
export class SubprocessFileNotFoundError extends CustomError {
|
|
3
|
+
constructor(filePath) {
|
|
4
|
+
super(`Cannot find the subprocess file to execute, invalid file path: ${filePath}`);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class SubprocessPathIsDirectoryError extends CustomError {
|
|
8
|
+
constructor(path) {
|
|
9
|
+
super(`The provided path is a directory, only files are accepted. Path: ${path}`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=subprocess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subprocess.js","sourceRoot":"","sources":["../../../src/errors/subprocess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,OAAO,2BAA4B,SAAQ,WAAW;IAC1D,YAAY,QAAgB;QAC1B,KAAK,CACH,kEAAkE,QAAQ,EAAE,CAC7E,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,8BAA+B,SAAQ,WAAW;IAC7D,YAAY,IAAY;QACtB,KAAK,CACH,oEAAoE,IAAI,EAAE,CAC3E,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { PrefixedHexString } from "./hex.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a value is an Ethereum address.
|
|
4
|
+
*
|
|
5
|
+
* @param value The value to check.
|
|
6
|
+
* @returns True if the value is an Ethereum address, false otherwise.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isAddress(value: unknown): value is PrefixedHexString;
|
|
9
|
+
/**
|
|
10
|
+
* Checks if a value is an Ethereum address and if the checksum is valid.
|
|
11
|
+
*
|
|
12
|
+
* @param value The value to check.
|
|
13
|
+
* @returns True if the value is an Ethereum address with a valid checksum, false otherwise.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isValidChecksumAddress(value: unknown): Promise<boolean>;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if a value is an Ethereum hash.
|
|
18
|
+
*
|
|
19
|
+
* @param value The value to check.
|
|
20
|
+
* @returns True if the value is an Ethereum hash, false otherwise.
|
|
21
|
+
*/
|
|
22
|
+
export declare function isHash(value: unknown): value is PrefixedHexString;
|
|
23
|
+
/**
|
|
24
|
+
* Converts a number to a hexadecimal string with a length of 32 bytes.
|
|
25
|
+
*
|
|
26
|
+
* @param value The number to convert.
|
|
27
|
+
* @returns The hexadecimal representation of the number padded to 32 bytes.
|
|
28
|
+
* @throws InvalidParameterError If the input is not a safe integer or is negative.
|
|
29
|
+
*/
|
|
30
|
+
export declare function toEvmWord(value: bigint | number): PrefixedHexString;
|
|
31
|
+
/**
|
|
32
|
+
* Generates a pseudo-random sequence of hash bytes.
|
|
33
|
+
*
|
|
34
|
+
* @returns A pseudo-random sequence of hash bytes.
|
|
35
|
+
*/
|
|
36
|
+
export declare function generateHashBytes(): Promise<Uint8Array>;
|
|
37
|
+
/**
|
|
38
|
+
* Generates a pseudo-random hash.
|
|
39
|
+
*
|
|
40
|
+
* @returns A pseudo-random hash.
|
|
41
|
+
*/
|
|
42
|
+
export declare function randomHash(): Promise<PrefixedHexString>;
|
|
43
|
+
/**
|
|
44
|
+
* Generates a pseudo-random sequence of hash bytes that can be used as an
|
|
45
|
+
* address.
|
|
46
|
+
*
|
|
47
|
+
* @returns A pseudo-random sequence of hash bytes.
|
|
48
|
+
*/
|
|
49
|
+
export declare function generateAddressBytes(): Promise<Uint8Array>;
|
|
50
|
+
/**
|
|
51
|
+
* Generates a pseudo-random address.
|
|
52
|
+
*
|
|
53
|
+
* @returns A pseudo-random address.
|
|
54
|
+
*/
|
|
55
|
+
export declare function randomAddress(): Promise<PrefixedHexString>;
|
|
56
|
+
//# sourceMappingURL=eth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eth.d.ts","sourceRoot":"","sources":["../../src/eth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AASlD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAEpE;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAEnE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,UAAU,CAAC,CAG7D;AAED;;;;GAIG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAG7D;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,CAIhE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAGhE"}
|
package/dist/src/eth.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { bytesToHexString, numberToHexString, setLengthLeft } from "./hex.js";
|
|
2
|
+
import { getAddressGenerator, getHashGenerator, isValidChecksum, } from "./internal/eth.js";
|
|
3
|
+
/**
|
|
4
|
+
* Checks if a value is an Ethereum address.
|
|
5
|
+
*
|
|
6
|
+
* @param value The value to check.
|
|
7
|
+
* @returns True if the value is an Ethereum address, false otherwise.
|
|
8
|
+
*/
|
|
9
|
+
export function isAddress(value) {
|
|
10
|
+
return typeof value === "string" && /^0x[0-9a-f]{40}$/i.test(value);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Checks if a value is an Ethereum address and if the checksum is valid.
|
|
14
|
+
*
|
|
15
|
+
* @param value The value to check.
|
|
16
|
+
* @returns True if the value is an Ethereum address with a valid checksum, false otherwise.
|
|
17
|
+
*/
|
|
18
|
+
export async function isValidChecksumAddress(value) {
|
|
19
|
+
return isAddress(value) && isValidChecksum(value);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Checks if a value is an Ethereum hash.
|
|
23
|
+
*
|
|
24
|
+
* @param value The value to check.
|
|
25
|
+
* @returns True if the value is an Ethereum hash, false otherwise.
|
|
26
|
+
*/
|
|
27
|
+
export function isHash(value) {
|
|
28
|
+
return typeof value === "string" && /^0x[0-9a-f]{64}$/i.test(value);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Converts a number to a hexadecimal string with a length of 32 bytes.
|
|
32
|
+
*
|
|
33
|
+
* @param value The number to convert.
|
|
34
|
+
* @returns The hexadecimal representation of the number padded to 32 bytes.
|
|
35
|
+
* @throws InvalidParameterError If the input is not a safe integer or is negative.
|
|
36
|
+
*/
|
|
37
|
+
export function toEvmWord(value) {
|
|
38
|
+
return setLengthLeft(numberToHexString(value), 64);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Generates a pseudo-random sequence of hash bytes.
|
|
42
|
+
*
|
|
43
|
+
* @returns A pseudo-random sequence of hash bytes.
|
|
44
|
+
*/
|
|
45
|
+
export async function generateHashBytes() {
|
|
46
|
+
const hashGenerator = await getHashGenerator();
|
|
47
|
+
return hashGenerator.next();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Generates a pseudo-random hash.
|
|
51
|
+
*
|
|
52
|
+
* @returns A pseudo-random hash.
|
|
53
|
+
*/
|
|
54
|
+
export async function randomHash() {
|
|
55
|
+
const hashBytes = await generateHashBytes();
|
|
56
|
+
return bytesToHexString(hashBytes);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Generates a pseudo-random sequence of hash bytes that can be used as an
|
|
60
|
+
* address.
|
|
61
|
+
*
|
|
62
|
+
* @returns A pseudo-random sequence of hash bytes.
|
|
63
|
+
*/
|
|
64
|
+
export async function generateAddressBytes() {
|
|
65
|
+
const addressGenerator = await getAddressGenerator();
|
|
66
|
+
const hashBytes = await addressGenerator.next();
|
|
67
|
+
return hashBytes.slice(0, 20);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Generates a pseudo-random address.
|
|
71
|
+
*
|
|
72
|
+
* @returns A pseudo-random address.
|
|
73
|
+
*/
|
|
74
|
+
export async function randomAddress() {
|
|
75
|
+
const addressBytes = await generateAddressBytes();
|
|
76
|
+
return bytesToHexString(addressBytes);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=eth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eth.js","sourceRoot":"","sources":["../../src/eth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAc;IACzD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC/C,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,SAAS,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC5C,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAChD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,YAAY,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAClD,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC"}
|