hardhat 3.16.0 → 3.17.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/CHANGELOG.md +21 -0
- package/dist/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.js +0 -1
- package/dist/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/config-resolution.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/config-resolution.js +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/config-resolution.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-constants.d.ts +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-constants.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-constants.js +2 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-constants.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts +15 -0
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js +43 -5
- package/dist/src/internal/builtin-plugins/network-manager/edr/edr-provider.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js +4 -4
- package/dist/src/internal/builtin-plugins/network-manager/edr/genesis-state.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts +3 -2
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js +13 -5
- package/dist/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/http-provider.js +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/http-provider.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/provider-errors.d.ts +20 -0
- package/dist/src/internal/builtin-plugins/network-manager/provider-errors.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/provider-errors.js +24 -0
- package/dist/src/internal/builtin-plugins/network-manager/provider-errors.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js +10 -13
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.d.ts +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.js +2 -2
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/multiplied-gas-estimation.d.ts +11 -3
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/multiplied-gas-estimation.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/multiplied-gas-estimation.js +53 -13
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/multiplied-gas-estimation.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.js +19 -1
- package/dist/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.js.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts +2 -0
- package/dist/src/internal/builtin-plugins/network-manager/type-extensions/config.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js +1 -0
- package/dist/src/internal/builtin-plugins/network-manager/type-validation.js.map +1 -1
- package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js +12 -1
- package/dist/src/internal/builtin-plugins/node/json-rpc/handler.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/formatters.js +10 -2
- package/dist/src/internal/builtin-plugins/solidity-test/formatters.js.map +1 -1
- package/dist/src/internal/core/configuration-variables.d.ts +8 -0
- package/dist/src/internal/core/configuration-variables.d.ts.map +1 -1
- package/dist/src/internal/core/configuration-variables.js +9 -9
- package/dist/src/internal/core/configuration-variables.js.map +1 -1
- package/dist/src/internal/edr/exports.d.ts +2 -0
- package/dist/src/internal/edr/exports.d.ts.map +1 -0
- package/dist/src/internal/edr/exports.js +2 -0
- package/dist/src/internal/edr/exports.js.map +1 -0
- package/package.json +6 -5
- package/src/internal/builtin-plugins/network-manager/accounts/derive-private-keys.ts +0 -1
- package/src/internal/builtin-plugins/network-manager/config-resolution.ts +1 -0
- package/src/internal/builtin-plugins/network-manager/edr/edr-constants.ts +3 -0
- package/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts +52 -1
- package/src/internal/builtin-plugins/network-manager/edr/genesis-state.ts +5 -5
- package/src/internal/builtin-plugins/network-manager/edr/utils/convert-to-edr.ts +17 -3
- package/src/internal/builtin-plugins/network-manager/http-provider.ts +1 -1
- package/src/internal/builtin-plugins/network-manager/provider-errors.ts +30 -0
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/accounts/local-accounts.ts +10 -26
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/automatic-gas-handler.ts +3 -1
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers/gas/multiplied-gas-estimation.ts +73 -18
- package/src/internal/builtin-plugins/network-manager/request-handlers/handlers-array.ts +24 -0
- package/src/internal/builtin-plugins/network-manager/type-extensions/config.ts +2 -0
- package/src/internal/builtin-plugins/network-manager/type-validation.ts +6 -0
- package/src/internal/builtin-plugins/node/json-rpc/handler.ts +15 -1
- package/src/internal/builtin-plugins/solidity-test/formatters.ts +14 -2
- package/src/internal/core/configuration-variables.ts +25 -10
- package/src/internal/edr/exports.ts +1 -0
- package/templates/01-node-test-runner-viem/package.json +1 -1
- package/templates/02-mocha-ethers/package.json +2 -2
- package/templates/03-minimal/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/node/json-rpc/handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/node/json-rpc/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,10 +13,18 @@ export function formatInlineConfigErrors(errors, sourceNameToUserSourceName) {
|
|
|
13
13
|
if (error.kind === "source") {
|
|
14
14
|
return `- ${sourceName}: ${formatInlineConfigSourceProblem(error.problem)}`;
|
|
15
15
|
}
|
|
16
|
-
return `- ${sourceName}:${error.line}: ${error.contract
|
|
16
|
+
return `- ${sourceName}:${error.line}: ${formatDirectiveOrigin(error.contract, error.function)}: ${formatInlineConfigDirectiveProblem(error.problem)}`;
|
|
17
17
|
})
|
|
18
18
|
.join("\n");
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Names where a directive was found: `Contract.testFn` for a function-level
|
|
22
|
+
* directive, and just `Contract` for a contract-level one, which EDR reports
|
|
23
|
+
* without a function.
|
|
24
|
+
*/
|
|
25
|
+
function formatDirectiveOrigin(contract, functionName) {
|
|
26
|
+
return functionName === undefined ? contract : `${contract}.${functionName}`;
|
|
27
|
+
}
|
|
20
28
|
function formatInlineConfigDirectiveProblem(problem) {
|
|
21
29
|
switch (problem.kind) {
|
|
22
30
|
case "InlineConfigInvalidSyntax":
|
|
@@ -40,7 +48,7 @@ function formatInlineConfigSourceProblem(problem) {
|
|
|
40
48
|
case "InlineConfigSourceFileNotFound":
|
|
41
49
|
return `the source file could not be read at "${problem.path}": ${problem.reason}`;
|
|
42
50
|
case "InlineConfigDirectiveLocation":
|
|
43
|
-
return `a directive of ${problem.contract
|
|
51
|
+
return `a directive of ${formatDirectiveOrigin(problem.contract, problem.function)} could not be located: ${problem.reason}`;
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
54
|
//# sourceMappingURL=formatters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/solidity-test/formatters.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAC9B,UAAsB,EACtB,0BAA+C;IAE/C,MAAM,UAAU,GACd,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC;IAEzE,OAAO,GAAG,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA2B,EAC3B,0BAA+C;IAE/C,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,UAAU,GACd,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC;QAEvE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,UAAU,KAAK,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,CAAC;QAED,OAAO,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/solidity-test/formatters.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAC9B,UAAsB,EACtB,0BAA+C;IAE/C,MAAM,UAAU,GACd,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC;IAEzE,OAAO,GAAG,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA2B,EAC3B,0BAA+C;IAE/C,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,UAAU,GACd,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC;QAEvE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,UAAU,KAAK,+BAA+B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,CAAC;QAED,OAAO,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,kCAAkC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACzJ,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,QAAgB,EAChB,YAAgC;IAEhC,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,YAAY,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,kCAAkC,CACzC,OAAqC;IAErC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,2BAA2B;YAC9B,OAAO,mBAAmB,OAAO,CAAC,SAAS,GAAG,CAAC;QACjD,KAAK,gCAAgC;YACnC,OAAO,wBAAwB,OAAO,CAAC,OAAO,4CAA4C,CAAC;QAC7F,KAAK,wBAAwB;YAC3B,OAAO,gBAAgB,OAAO,CAAC,GAAG,GAAG,CAAC;QACxC,KAAK,mCAAmC;YACtC,OAAO,QAAQ,OAAO,CAAC,GAAG,sBAAsB,OAAO,CAAC,QAAQ,QAAQ,CAAC;QAC3E,KAAK,0BAA0B;YAC7B,OAAO,kBAAkB,OAAO,CAAC,KAAK,cAAc,OAAO,CAAC,GAAG,iBAAiB,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrG,KAAK,0BAA0B;YAC7B,OAAO,kBAAkB,OAAO,CAAC,GAAG,GAAG,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,OAAkC;IAElC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,gCAAgC;YACnC,OAAO,yFAAyF,CAAC;QACnG,KAAK,gCAAgC;YACnC,OAAO,yCAAyC,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACrF,KAAK,+BAA+B;YAClC,OAAO,kBAAkB,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,OAAO,CAAC,MAAM,EAAE,CAAC;IACjI,CAAC;AACH,CAAC"}
|
|
@@ -7,6 +7,12 @@ declare abstract class BaseResolvedConfigurationVariable implements ResolvedConf
|
|
|
7
7
|
readonly format: string;
|
|
8
8
|
_type: "ResolvedConfigurationVariable";
|
|
9
9
|
protected abstract _getRawValue(): Promise<string>;
|
|
10
|
+
/**
|
|
11
|
+
* A description of this variable, used to identify it in error messages.
|
|
12
|
+
*
|
|
13
|
+
* Resolved values may be secrets, so they must never be included in errors.
|
|
14
|
+
*/
|
|
15
|
+
protected abstract _getDescription(): string;
|
|
10
16
|
constructor(format: string);
|
|
11
17
|
get(): Promise<string>;
|
|
12
18
|
getUrl(): Promise<string>;
|
|
@@ -17,11 +23,13 @@ export declare class LazyResolvedConfigurationVariable extends BaseResolvedConfi
|
|
|
17
23
|
#private;
|
|
18
24
|
readonly name: string;
|
|
19
25
|
constructor(hooks: HookManager, variable: ConfigurationVariable);
|
|
26
|
+
protected _getDescription(): string;
|
|
20
27
|
protected _getRawValue(): Promise<string>;
|
|
21
28
|
}
|
|
22
29
|
export declare class FixedValueConfigurationVariable extends BaseResolvedConfigurationVariable {
|
|
23
30
|
#private;
|
|
24
31
|
constructor(value: string);
|
|
32
|
+
protected _getDescription(): string;
|
|
25
33
|
protected _getRawValue(): Promise<string>;
|
|
26
34
|
}
|
|
27
35
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-variables.d.ts","sourceRoot":"","sources":["../../../../src/internal/core/configuration-variables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASxD,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,qBAAqB,GAAG,MAAM,GACvC,6BAA6B,CAM/B;AAED,uBAAe,iCAAkC,YAAW,6BAA6B;;
|
|
1
|
+
{"version":3,"file":"configuration-variables.d.ts","sourceRoot":"","sources":["../../../../src/internal/core/configuration-variables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASxD,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,qBAAqB,GAAG,MAAM,GACvC,6BAA6B,CAM/B;AAED,uBAAe,iCAAkC,YAAW,6BAA6B;;aAe3D,MAAM,EAAE,MAAM;IAdnC,KAAK,EAAE,+BAA+B,CACX;IAIlC,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAElD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,MAAM;gBAEhB,MAAM,EAAE,MAAM;IAO7B,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAWtB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAczB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAa5B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAW7C;AAED,qBAAa,iCAAkC,SAAQ,iCAAiC;;IAStF,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB;IAW/D,SAAS,CAAC,eAAe,IAAI,MAAM;cAInB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAmChD;AAED,qBAAa,+BAAgC,SAAQ,iCAAiC;;gBAGxE,KAAK,EAAE,MAAM;IAKzB,SAAS,CAAC,eAAe,IAAI,MAAM;cAInB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAGhD"}
|
|
@@ -29,9 +29,7 @@ class BaseResolvedConfigurationVariable {
|
|
|
29
29
|
return value;
|
|
30
30
|
}
|
|
31
31
|
catch (_error) {
|
|
32
|
-
throw new HardhatError(HardhatError.ERRORS.CORE.GENERAL.
|
|
33
|
-
url: value,
|
|
34
|
-
});
|
|
32
|
+
throw new HardhatError(HardhatError.ERRORS.CORE.GENERAL.INVALID_CONFIG_VARIABLE_URL, { configVariable: this._getDescription() });
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
async getBigInt() {
|
|
@@ -40,9 +38,7 @@ class BaseResolvedConfigurationVariable {
|
|
|
40
38
|
return BigInt(value);
|
|
41
39
|
}
|
|
42
40
|
catch (_error) {
|
|
43
|
-
throw new HardhatError(HardhatError.ERRORS.CORE.GENERAL.
|
|
44
|
-
value,
|
|
45
|
-
});
|
|
41
|
+
throw new HardhatError(HardhatError.ERRORS.CORE.GENERAL.INVALID_CONFIG_VARIABLE_BIGINT, { configVariable: this._getDescription() });
|
|
46
42
|
}
|
|
47
43
|
}
|
|
48
44
|
async getHexString() {
|
|
@@ -51,9 +47,7 @@ class BaseResolvedConfigurationVariable {
|
|
|
51
47
|
return normalizeHexString(value);
|
|
52
48
|
}
|
|
53
49
|
catch {
|
|
54
|
-
throw new HardhatError(HardhatError.ERRORS.CORE.GENERAL.
|
|
55
|
-
value,
|
|
56
|
-
});
|
|
50
|
+
throw new HardhatError(HardhatError.ERRORS.CORE.GENERAL.INVALID_CONFIG_VARIABLE_HEX_STRING, { configVariable: this._getDescription() });
|
|
57
51
|
}
|
|
58
52
|
}
|
|
59
53
|
}
|
|
@@ -74,6 +68,9 @@ export class LazyResolvedConfigurationVariable extends BaseResolvedConfiguration
|
|
|
74
68
|
LazyResolvedConfigurationVariable.#mutexes.set(hooks, new AsyncMutex());
|
|
75
69
|
}
|
|
76
70
|
}
|
|
71
|
+
_getDescription() {
|
|
72
|
+
return `the configuration variable "${this.name}"`;
|
|
73
|
+
}
|
|
77
74
|
async _getRawValue() {
|
|
78
75
|
// Env vars take precedence over every configurationVariables plugin hook
|
|
79
76
|
// (e.g. keystore). Skip the hook chain entirely when the env var is set so
|
|
@@ -101,6 +98,9 @@ export class FixedValueConfigurationVariable extends BaseResolvedConfigurationVa
|
|
|
101
98
|
super(CONFIGURATION_VARIABLE_MARKER);
|
|
102
99
|
this.#value = value;
|
|
103
100
|
}
|
|
101
|
+
_getDescription() {
|
|
102
|
+
return "an inline configuration value";
|
|
103
|
+
}
|
|
104
104
|
async _getRawValue() {
|
|
105
105
|
return this.#value;
|
|
106
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-variables.js","sourceRoot":"","sources":["../../../../src/internal/core/configuration-variables.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAC;AAE5E,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D,MAAM,UAAU,4BAA4B,CAC1C,KAAkB,EAClB,QAAwC;IAExC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAI,+BAA+B,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,IAAI,iCAAiC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC;AAED,MAAe,iCAAiC;
|
|
1
|
+
{"version":3,"file":"configuration-variables.js","sourceRoot":"","sources":["../../../../src/internal/core/configuration-variables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../../../src/internal/edr/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../../../src/internal/edr/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.17.0",
|
|
4
4
|
"description": "Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.",
|
|
5
5
|
"homepage": "https://hardhat.org",
|
|
6
6
|
"repository": {
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"./types/solidity": "./dist/src/types/solidity.js",
|
|
39
39
|
"./console.sol": "./console.sol",
|
|
40
40
|
"./internal/coverage": "./dist/src/internal/builtin-plugins/coverage/exports.js",
|
|
41
|
+
"./internal/native-crypto": "./dist/src/internal/edr/exports.js",
|
|
41
42
|
"./internal/gas-analytics": "./dist/src/internal/builtin-plugins/gas-analytics/exports.js",
|
|
42
43
|
"./internal/solidity": "./dist/src/internal/builtin-plugins/solidity/exports.js",
|
|
43
44
|
"./utils/contract-names": "./dist/src/utils/contract-names.js",
|
|
@@ -77,9 +78,9 @@
|
|
|
77
78
|
"@nomicfoundation/hardhat-test-utils": "^2.0.3"
|
|
78
79
|
},
|
|
79
80
|
"dependencies": {
|
|
80
|
-
"@nomicfoundation/edr": "0.
|
|
81
|
+
"@nomicfoundation/edr": "0.20.0",
|
|
81
82
|
"@nomicfoundation/hardhat-errors": "^3.0.17",
|
|
82
|
-
"@nomicfoundation/hardhat-utils": "^4.
|
|
83
|
+
"@nomicfoundation/hardhat-utils": "^4.2.0",
|
|
83
84
|
"@nomicfoundation/hardhat-vendored": "^3.0.4",
|
|
84
85
|
"@nomicfoundation/hardhat-zod-utils": "^3.0.5",
|
|
85
86
|
"@nomicfoundation/solidity-analyzer": "^0.1.1",
|
|
@@ -87,8 +88,8 @@
|
|
|
87
88
|
"adm-zip": "^0.6.0",
|
|
88
89
|
"chokidar": "^5.0.0",
|
|
89
90
|
"enquirer": "^2.3.0",
|
|
90
|
-
"ethereum-cryptography": "^
|
|
91
|
-
"micro-eth-signer": "^0.
|
|
91
|
+
"ethereum-cryptography": "^3.0.0",
|
|
92
|
+
"micro-eth-signer": "^0.19.0",
|
|
92
93
|
"p-map": "^7.0.6",
|
|
93
94
|
"resolve.exports": "^2.0.3",
|
|
94
95
|
"semver": "^7.8.5",
|
|
@@ -96,6 +96,7 @@ export function resolveEdrNetwork(
|
|
|
96
96
|
cachePath,
|
|
97
97
|
resolveConfigurationVariable,
|
|
98
98
|
),
|
|
99
|
+
gasEstimationMode: networkConfig.gasEstimationMode ?? "noInternalOutOfGas",
|
|
99
100
|
hardfork: resolveHardfork(
|
|
100
101
|
networkConfig.hardfork,
|
|
101
102
|
networkConfig.chainType ?? defaultChainType,
|
|
@@ -10,6 +10,9 @@ export const EDR_NETWORK_DEFAULT_COINBASE =
|
|
|
10
10
|
|
|
11
11
|
export const DEFAULT_EDR_NETWORK_BLOCK_GAS_LIMIT = 60_000_000n;
|
|
12
12
|
|
|
13
|
+
// EIP-7825 per-transaction gas cap, enforced from L1's Osaka hardfork onwards
|
|
14
|
+
export const EIP_7825_TRANSACTION_GAS_CAP = 16_777_216n;
|
|
15
|
+
|
|
13
16
|
interface EdrNetworkDefaultHDAccountsConfigParams extends DefaultHDAccountsConfigParams {
|
|
14
17
|
mnemonic: string;
|
|
15
18
|
accountsBalance: bigint;
|
|
@@ -40,6 +40,8 @@ import { getGlobalEdrContext } from "../../../edr/context.js";
|
|
|
40
40
|
import { BaseProvider } from "../base-provider.js";
|
|
41
41
|
import { getJsonRpcRequest, isFailedJsonRpcResponse } from "../json-rpc.js";
|
|
42
42
|
import {
|
|
43
|
+
InternalCallOutOfGasError,
|
|
44
|
+
isInternalCallOutOfGasErrorData,
|
|
43
45
|
InvalidArgumentsError,
|
|
44
46
|
ProviderError,
|
|
45
47
|
UnknownError,
|
|
@@ -57,6 +59,7 @@ import {
|
|
|
57
59
|
hardhatMempoolOrderToEdrMineOrdering,
|
|
58
60
|
hardhatHardforkToEdrSpecId,
|
|
59
61
|
hardhatForkingConfigToEdrForkConfig,
|
|
62
|
+
hardhatGasEstimationModeToEdrGasEstimationMode,
|
|
60
63
|
resolveDefaultTransactionGasLimit,
|
|
61
64
|
} from "./utils/convert-to-edr.js";
|
|
62
65
|
import { warnIfExperimentalHardfork } from "./utils/hardfork.js";
|
|
@@ -79,12 +82,33 @@ interface EdrProviderConfig {
|
|
|
79
82
|
}
|
|
80
83
|
|
|
81
84
|
export class EdrProvider extends BaseProvider {
|
|
85
|
+
/**
|
|
86
|
+
* The value the underlying EDR provider was configured with, applied to
|
|
87
|
+
* RPC call and transaction requests that omit a `gas` field. Exposed so
|
|
88
|
+
* that the automatic gas handler's estimation fallback can reuse it
|
|
89
|
+
* instead of recomputing it.
|
|
90
|
+
*/
|
|
91
|
+
public readonly defaultTransactionGasLimit: bigint;
|
|
92
|
+
|
|
82
93
|
readonly #jsonRpcRequestWrapper?: JsonRpcRequestWrapperFunction;
|
|
83
94
|
|
|
95
|
+
#blockGasLimitEnforced: boolean;
|
|
96
|
+
|
|
84
97
|
#provider: Provider | undefined;
|
|
85
98
|
#nextRequestId = 1;
|
|
86
99
|
readonly #traceOutput: TraceOutputManager | undefined;
|
|
87
100
|
|
|
101
|
+
/**
|
|
102
|
+
* Whether the network rejects transactions whose gas limit exceeds the block
|
|
103
|
+
* gas limit. It is false only for networks configured with
|
|
104
|
+
* `blockGasLimit: false`.
|
|
105
|
+
*
|
|
106
|
+
* `evm_setBlockGasLimit` turns this on permanently.
|
|
107
|
+
*/
|
|
108
|
+
public get isBlockGasLimitEnforced(): boolean {
|
|
109
|
+
return this.#blockGasLimitEnforced;
|
|
110
|
+
}
|
|
111
|
+
|
|
88
112
|
public static async createContractDecoder(
|
|
89
113
|
tracingConfig: TracingConfigWithBuffers,
|
|
90
114
|
): Promise<ContractDecoder> {
|
|
@@ -179,6 +203,10 @@ export class EdrProvider extends BaseProvider {
|
|
|
179
203
|
|
|
180
204
|
edrProvider = new EdrProvider(
|
|
181
205
|
provider,
|
|
206
|
+
providerConfig.defaultTransactionGasLimit,
|
|
207
|
+
// EDR only enforces a block gas limit when it was given a mining one,
|
|
208
|
+
// which `blockGasLimit: false` omits
|
|
209
|
+
providerConfig.mining.blockGasLimit !== undefined,
|
|
182
210
|
traceOutput,
|
|
183
211
|
jsonRpcRequestWrapper,
|
|
184
212
|
);
|
|
@@ -202,12 +230,16 @@ export class EdrProvider extends BaseProvider {
|
|
|
202
230
|
*/
|
|
203
231
|
private constructor(
|
|
204
232
|
provider: Provider,
|
|
233
|
+
defaultTransactionGasLimit: bigint,
|
|
234
|
+
blockGasLimitEnforced: boolean,
|
|
205
235
|
traceOutput: TraceOutputManager | undefined,
|
|
206
236
|
jsonRpcRequestWrapper?: JsonRpcRequestWrapperFunction,
|
|
207
237
|
) {
|
|
208
238
|
super();
|
|
209
239
|
|
|
210
240
|
this.#provider = provider;
|
|
241
|
+
this.defaultTransactionGasLimit = defaultTransactionGasLimit;
|
|
242
|
+
this.#blockGasLimitEnforced = blockGasLimitEnforced;
|
|
211
243
|
this.#traceOutput = traceOutput;
|
|
212
244
|
this.#jsonRpcRequestWrapper = jsonRpcRequestWrapper;
|
|
213
245
|
|
|
@@ -263,6 +295,11 @@ export class EdrProvider extends BaseProvider {
|
|
|
263
295
|
this.emit(EDR_NETWORK_REVERT_SNAPSHOT_EVENT);
|
|
264
296
|
}
|
|
265
297
|
|
|
298
|
+
// This makes even a `blockGasLimit: false` network enforce a limit.
|
|
299
|
+
if (jsonRpcRequest.method === "evm_setBlockGasLimit") {
|
|
300
|
+
this.#blockGasLimitEnforced = true;
|
|
301
|
+
}
|
|
302
|
+
|
|
266
303
|
// Override EDR version string with Hardhat version string with EDR backend,
|
|
267
304
|
// e.g. `HardhatNetwork/2.19.0/@nomicfoundation/edr/0.2.0-dev`
|
|
268
305
|
if (jsonRpcRequest.method === "web3_clientVersion") {
|
|
@@ -325,7 +362,18 @@ export class EdrProvider extends BaseProvider {
|
|
|
325
362
|
|
|
326
363
|
const stackTrace = edrResponse.stackTrace();
|
|
327
364
|
|
|
328
|
-
|
|
365
|
+
// The InternalCallOutOfGas estimation failure must win over a solidity
|
|
366
|
+
// stack trace: the automatic gas fallback in MultipliedGasEstimation
|
|
367
|
+
// relies on receiving an InternalCallOutOfGasError. It is scoped to
|
|
368
|
+
// eth_estimateGas, the only method the gas estimation mode affects, so
|
|
369
|
+
// that no other method loses its stack trace to this branch.
|
|
370
|
+
if (
|
|
371
|
+
method === "eth_estimateGas" &&
|
|
372
|
+
isInternalCallOutOfGasErrorData(errorData)
|
|
373
|
+
) {
|
|
374
|
+
error = new InternalCallOutOfGasError();
|
|
375
|
+
error.data = responseError.data;
|
|
376
|
+
} else if (stackTrace?.kind === "StackTrace") {
|
|
329
377
|
// If we have a stack trace, we know that the json rpc response data
|
|
330
378
|
// is an object with the data and transactionHash fields
|
|
331
379
|
assertHardhatInvariant(
|
|
@@ -507,6 +555,9 @@ export async function getProviderConfig(
|
|
|
507
555
|
chainId: BigInt(networkConfig.chainId),
|
|
508
556
|
coinbase: networkConfig.coinbase,
|
|
509
557
|
defaultTransactionGasLimit,
|
|
558
|
+
gasEstimationMode: hardhatGasEstimationModeToEdrGasEstimationMode(
|
|
559
|
+
networkConfig.gasEstimationMode,
|
|
560
|
+
),
|
|
510
561
|
genesisState: Array.from(genesisState.values()),
|
|
511
562
|
hardfork: specId,
|
|
512
563
|
initialBaseFeePerGas: networkConfig.initialBaseFeePerGas,
|
|
@@ -3,7 +3,7 @@ import type {
|
|
|
3
3
|
EdrNetworkForkingConfig,
|
|
4
4
|
} from "../../../../types/config.js";
|
|
5
5
|
import type { ChainType } from "../../../../types/network.js";
|
|
6
|
-
import type * as
|
|
6
|
+
import type * as MicroEthSignerT from "micro-eth-signer";
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
9
|
l1GenesisState,
|
|
@@ -21,7 +21,7 @@ import { OPTIMISM_CHAIN_TYPE } from "../../../constants.js";
|
|
|
21
21
|
import { hardhatAccountsToEdrOwnedAccounts } from "./utils/convert-to-edr.js";
|
|
22
22
|
|
|
23
23
|
// micro-eth-signer is known to be slow to load, so we lazy load it
|
|
24
|
-
let
|
|
24
|
+
let microEthSigner: typeof MicroEthSignerT | undefined;
|
|
25
25
|
|
|
26
26
|
const noForkingConfigCacheMarkerObject = {};
|
|
27
27
|
|
|
@@ -135,11 +135,11 @@ async function createGenesisStateAndOwnedAccounts(
|
|
|
135
135
|
genesisState: Map<string, AccountOverride>;
|
|
136
136
|
ownedAccounts: Array<{ secretKey: string; balance: bigint }>;
|
|
137
137
|
}> {
|
|
138
|
-
if (
|
|
139
|
-
|
|
138
|
+
if (microEthSigner === undefined) {
|
|
139
|
+
microEthSigner = await import("micro-eth-signer");
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
const { addr } =
|
|
142
|
+
const { addr } = microEthSigner;
|
|
143
143
|
|
|
144
144
|
const ownedAccounts = await hardhatAccountsToEdrOwnedAccounts(accountsConfig);
|
|
145
145
|
|
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
EdrNetworkAccountConfig,
|
|
4
4
|
EdrNetworkAccountsConfig,
|
|
5
5
|
ChainDescriptorsConfig,
|
|
6
|
+
EdrNetworkConfig,
|
|
6
7
|
EdrNetworkForkingConfig,
|
|
7
8
|
EdrNetworkMempoolConfig,
|
|
8
9
|
EdrNetworkMiningConfig,
|
|
@@ -17,6 +18,7 @@ import type {
|
|
|
17
18
|
} from "@nomicfoundation/edr";
|
|
18
19
|
|
|
19
20
|
import {
|
|
21
|
+
GasEstimationMode,
|
|
20
22
|
GasReportExecutionStatus,
|
|
21
23
|
MineOrdering,
|
|
22
24
|
OpHardfork,
|
|
@@ -61,6 +63,7 @@ import { derivePrivateKeys } from "../../accounts/derive-private-keys.js";
|
|
|
61
63
|
import {
|
|
62
64
|
DEFAULT_EDR_NETWORK_BALANCE,
|
|
63
65
|
EDR_NETWORK_DEFAULT_PRIVATE_KEYS,
|
|
66
|
+
EIP_7825_TRANSACTION_GAS_CAP,
|
|
64
67
|
isDefaultEdrNetworkHDAccountsConfig,
|
|
65
68
|
} from "../edr-constants.js";
|
|
66
69
|
import {
|
|
@@ -263,8 +266,8 @@ export function hardhatMiningIntervalToEdrMiningInterval(
|
|
|
263
266
|
}
|
|
264
267
|
} else {
|
|
265
268
|
return {
|
|
266
|
-
min: BigInt(config[0]),
|
|
267
|
-
max: BigInt(config[1]),
|
|
269
|
+
min: BigInt(Math.max(1, config[0])),
|
|
270
|
+
max: BigInt(Math.max(1, config[1])),
|
|
268
271
|
};
|
|
269
272
|
}
|
|
270
273
|
}
|
|
@@ -280,6 +283,17 @@ export function hardhatMempoolOrderToEdrMineOrdering(
|
|
|
280
283
|
}
|
|
281
284
|
}
|
|
282
285
|
|
|
286
|
+
export function hardhatGasEstimationModeToEdrGasEstimationMode(
|
|
287
|
+
gasEstimationMode: EdrNetworkConfig["gasEstimationMode"],
|
|
288
|
+
): GasEstimationMode {
|
|
289
|
+
switch (gasEstimationMode) {
|
|
290
|
+
case "topLevelSuccess":
|
|
291
|
+
return GasEstimationMode.TopLevelSuccess;
|
|
292
|
+
case "noInternalOutOfGas":
|
|
293
|
+
return GasEstimationMode.NoInternalOutOfGas;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
283
297
|
export async function hardhatAccountsToEdrOwnedAccounts(
|
|
284
298
|
accounts: EdrNetworkAccountsConfig,
|
|
285
299
|
): Promise<Array<{ secretKey: string; balance: bigint }>> {
|
|
@@ -423,7 +437,7 @@ export function resolveDefaultTransactionGasLimit(params: {
|
|
|
423
437
|
}
|
|
424
438
|
|
|
425
439
|
if (hardforkGte(hardfork, L1HardforkName.OSAKA, chainType)) {
|
|
426
|
-
return
|
|
440
|
+
return EIP_7825_TRANSACTION_GAS_CAP;
|
|
427
441
|
}
|
|
428
442
|
|
|
429
443
|
return blockGasLimit;
|
|
@@ -101,3 +101,33 @@ export class UnknownError extends ProviderError {
|
|
|
101
101
|
super(message, UnknownError.CODE, parent);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Thrown by `eth_estimateGas` when the network's `gasEstimationMode` is
|
|
107
|
+
* `"noInternalOutOfGas"` and an internal call runs out of gas even when the
|
|
108
|
+
* transaction is executed with the maximum amount of gas available, meaning
|
|
109
|
+
* that no gas limit can prevent the internal out-of-gas error.
|
|
110
|
+
*/
|
|
111
|
+
export class InternalCallOutOfGasError extends ProviderError {
|
|
112
|
+
public static readonly CODE = -32000;
|
|
113
|
+
|
|
114
|
+
constructor(
|
|
115
|
+
message: string = "Gas estimation failed: an internal call runs out of gas regardless of the transaction's gas limit, so no reliable estimate exists. Set an explicit gas limit for the transaction, or set the network's gasEstimationMode to 'topLevelSuccess' to only require the top-level call to succeed.",
|
|
116
|
+
parent?: Error,
|
|
117
|
+
) {
|
|
118
|
+
super(message, InternalCallOutOfGasError.CODE, parent);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Detects the error data of EDR's estimation failure for the
|
|
124
|
+
* `NoInternalOutOfGas` gas estimation mode, reported when an internal call
|
|
125
|
+
* runs out of gas even when the transaction is executed with the maximum
|
|
126
|
+
* amount of gas available.
|
|
127
|
+
*
|
|
128
|
+
* The `reason` discriminator it looks for is also what `hardhat node` puts on
|
|
129
|
+
* the wire, so clients of an http connection can recognize the failure.
|
|
130
|
+
*/
|
|
131
|
+
export function isInternalCallOutOfGasErrorData(errorData: unknown): boolean {
|
|
132
|
+
return isObject(errorData) && errorData.reason === "InternalCallOutOfGas";
|
|
133
|
+
}
|
|
@@ -6,7 +6,6 @@ import type {
|
|
|
6
6
|
import type { RequestHandler } from "../../types.js";
|
|
7
7
|
import type { RpcTransactionRequest } from "@nomicfoundation/hardhat-zod-utils/rpc";
|
|
8
8
|
import type * as MicroEthSignerT from "micro-eth-signer";
|
|
9
|
-
import type * as MicroEthSignerTypedDataT from "micro-eth-signer/typed-data";
|
|
10
9
|
|
|
11
10
|
import {
|
|
12
11
|
assertHardhatInvariant,
|
|
@@ -32,7 +31,6 @@ import {
|
|
|
32
31
|
|
|
33
32
|
// micro-eth-signer is known to be slow to load, so we lazy load it
|
|
34
33
|
let microEthSigner: typeof MicroEthSignerT | undefined;
|
|
35
|
-
let microEthSignerTypedData: typeof MicroEthSignerTypedDataT | undefined;
|
|
36
34
|
|
|
37
35
|
import { getRequestParams } from "../../../json-rpc.js";
|
|
38
36
|
import { ChainId } from "../chain-id/chain-id.js";
|
|
@@ -129,19 +127,14 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
129
127
|
);
|
|
130
128
|
}
|
|
131
129
|
|
|
132
|
-
if (
|
|
133
|
-
|
|
134
|
-
await import("micro-eth-signer/typed-data");
|
|
130
|
+
if (microEthSigner === undefined) {
|
|
131
|
+
microEthSigner = await import("micro-eth-signer");
|
|
135
132
|
}
|
|
136
133
|
|
|
137
134
|
const privateKey = await this.#getPrivateKeyForAddress(address);
|
|
138
135
|
return this.#createJsonRpcResponse(
|
|
139
136
|
jsonRpcRequest.id,
|
|
140
|
-
|
|
141
|
-
data,
|
|
142
|
-
privateKey,
|
|
143
|
-
EXTRA_ENTROPY,
|
|
144
|
-
),
|
|
137
|
+
microEthSigner.eip191Signer.sign(data, privateKey, EXTRA_ENTROPY),
|
|
145
138
|
);
|
|
146
139
|
}
|
|
147
140
|
}
|
|
@@ -159,19 +152,14 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
159
152
|
);
|
|
160
153
|
}
|
|
161
154
|
|
|
162
|
-
if (
|
|
163
|
-
|
|
164
|
-
await import("micro-eth-signer/typed-data");
|
|
155
|
+
if (microEthSigner === undefined) {
|
|
156
|
+
microEthSigner = await import("micro-eth-signer");
|
|
165
157
|
}
|
|
166
158
|
|
|
167
159
|
const privateKey = await this.#getPrivateKeyForAddress(address);
|
|
168
160
|
return this.#createJsonRpcResponse(
|
|
169
161
|
jsonRpcRequest.id,
|
|
170
|
-
|
|
171
|
-
data,
|
|
172
|
-
privateKey,
|
|
173
|
-
EXTRA_ENTROPY,
|
|
174
|
-
),
|
|
162
|
+
microEthSigner.eip191Signer.sign(data, privateKey, EXTRA_ENTROPY),
|
|
175
163
|
);
|
|
176
164
|
}
|
|
177
165
|
}
|
|
@@ -201,17 +189,13 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
201
189
|
// if we don't manage the address, the method is forwarded
|
|
202
190
|
const privateKey = await this.#getPrivateKeyForAddressOrNull(address);
|
|
203
191
|
if (privateKey !== null) {
|
|
204
|
-
if (
|
|
205
|
-
|
|
192
|
+
if (microEthSigner === undefined) {
|
|
193
|
+
microEthSigner = await import("micro-eth-signer");
|
|
206
194
|
}
|
|
207
195
|
|
|
208
196
|
return this.#createJsonRpcResponse(
|
|
209
197
|
jsonRpcRequest.id,
|
|
210
|
-
|
|
211
|
-
typedMessage,
|
|
212
|
-
privateKey,
|
|
213
|
-
EXTRA_ENTROPY,
|
|
214
|
-
),
|
|
198
|
+
microEthSigner.signTyped(typedMessage, privateKey, EXTRA_ENTROPY),
|
|
215
199
|
);
|
|
216
200
|
}
|
|
217
201
|
}
|
|
@@ -482,7 +466,7 @@ export class LocalAccountsHandler extends ChainId implements RequestHandler {
|
|
|
482
466
|
|
|
483
467
|
const signedTransaction = transaction.signBy(privateKey, EXTRA_ENTROPY);
|
|
484
468
|
|
|
485
|
-
return signedTransaction.
|
|
469
|
+
return signedTransaction.toBytes();
|
|
486
470
|
}
|
|
487
471
|
|
|
488
472
|
#createJsonRpcResponse(
|
|
@@ -30,8 +30,10 @@ export class AutomaticGasHandler
|
|
|
30
30
|
constructor(
|
|
31
31
|
provider: EthereumProvider,
|
|
32
32
|
gasMultiplier: number = DEFAULT_GAS_MULTIPLIER,
|
|
33
|
+
fallbackGas?: bigint,
|
|
34
|
+
isBlockGasLimitEnforced?: () => boolean,
|
|
33
35
|
) {
|
|
34
|
-
super(provider, gasMultiplier);
|
|
36
|
+
super(provider, gasMultiplier, fallbackGas, isBlockGasLimitEnforced);
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
public isSupportedMethod(jsonRpcRequest: JsonRpcRequest): boolean {
|