@aztec/stdlib 0.0.1-commit.f5d02921e → 0.0.1-commit.f650c0a5c
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/selector.d.ts +2 -2
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/selector.js +1 -1
- package/dest/avm/revert_code.d.ts +8 -18
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +15 -30
- package/dest/gas/gas_settings.d.ts +40 -3
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +50 -6
- package/dest/interfaces/aztec-node-admin.d.ts +4 -11
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +3 -3
- package/dest/interfaces/proving-job.d.ts +166 -166
- package/dest/interfaces/slasher.d.ts +1 -10
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +0 -2
- package/dest/interfaces/validator.d.ts +3 -6
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/l1-contracts/index.d.ts +2 -2
- package/dest/l1-contracts/index.d.ts.map +1 -1
- package/dest/l1-contracts/index.js +1 -1
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +4 -4
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -1
- package/dest/logs/extended_directional_app_tagging_secret.js +12 -5
- package/dest/p2p/checkpoint_proposal.d.ts +2 -2
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +3 -15
- package/dest/slashing/index.d.ts +2 -3
- package/dest/slashing/index.d.ts.map +1 -1
- package/dest/slashing/index.js +1 -2
- package/dest/slashing/serialization.d.ts +2 -6
- package/dest/slashing/serialization.d.ts.map +1 -1
- package/dest/slashing/serialization.js +0 -60
- package/dest/slashing/types.d.ts +4 -90
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +0 -14
- package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
- package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
- package/dest/slashing/{tally.js → votes.js} +1 -1
- package/dest/tests/factories.js +1 -1
- package/dest/tests/mocks.d.ts +1 -1
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +13 -18
- package/dest/timetable/index.d.ts +2 -1
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +6 -2
- package/dest/tx/simulated_tx.d.ts +3 -3
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +2 -2
- package/dest/tx/tx_receipt.d.ts +8 -4
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +8 -15
- package/dest/world-state/genesis_data.d.ts +11 -0
- package/dest/world-state/genesis_data.d.ts.map +1 -0
- package/dest/world-state/genesis_data.js +4 -0
- package/dest/world-state/index.d.ts +2 -1
- package/dest/world-state/index.d.ts.map +1 -1
- package/dest/world-state/index.js +1 -0
- package/package.json +8 -8
- package/src/abi/selector.ts +1 -1
- package/src/avm/revert_code.ts +25 -39
- package/src/gas/gas_settings.ts +65 -12
- package/src/interfaces/aztec-node-admin.ts +5 -7
- package/src/interfaces/slasher.ts +0 -6
- package/src/interfaces/validator.ts +1 -4
- package/src/l1-contracts/index.ts +1 -1
- package/src/logs/extended_directional_app_tagging_secret.ts +19 -8
- package/src/p2p/checkpoint_proposal.ts +10 -26
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +3 -35
- package/src/slashing/{tally.ts → votes.ts} +1 -1
- package/src/tests/factories.ts +1 -1
- package/src/tests/mocks.ts +14 -12
- package/src/timetable/index.ts +7 -2
- package/src/tx/simulated_tx.ts +5 -1
- package/src/tx/tx_receipt.ts +11 -14
- package/src/world-state/genesis_data.ts +15 -0
- package/src/world-state/index.ts +1 -0
- package/dest/l1-contracts/slash_factory.d.ts +0 -45
- package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
- package/dest/l1-contracts/slash_factory.js +0 -158
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -87
- package/src/l1-contracts/slash_factory.ts +0 -180
- package/src/slashing/empire.ts +0 -104
package/dest/abi/selector.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { inspect } from 'util';
|
|
3
|
-
/** A selector is the
|
|
3
|
+
/** A selector is the low 4 bytes of the poseidon2 hash of a signature. */
|
|
4
4
|
export declare abstract class Selector {
|
|
5
5
|
value: number;
|
|
6
6
|
/** The size of the selector in bytes. */
|
|
@@ -36,4 +36,4 @@ export declare abstract class Selector {
|
|
|
36
36
|
*/
|
|
37
37
|
toField(): Fr;
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsMEVBQTBFO0FBQzFFLDhCQUFzQixRQUFRO0lBSW9CLEtBQUssRUFBRSxNQUFNO0lBSDdELHlDQUF5QztJQUN6QyxPQUFjLElBQUksU0FBSztJQUV2QixZQUFZLDRCQUE0QixDQUFRLEtBQUssRUFBRSxNQUFNLEVBSTVEO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTyxJQUFJLE9BQU8sQ0FFeEI7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLFVBQVUsU0FBZ0IsR0FBRyxNQUFNLENBRTNDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FFZjtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsR0FBRyxPQUFPLENBRS9CO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU8sT0FFYjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/abi/selector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,
|
|
1
|
+
{"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/abi/selector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,0EAA0E;AAC1E,8BAAsB,QAAQ;IAIoB,KAAK,EAAE,MAAM;IAH7D,yCAAyC;IACzC,OAAc,IAAI,SAAK;IAEvB,YAAY,4BAA4B,CAAQ,KAAK,EAAE,MAAM,EAI5D;IAED;;;OAGG;IACI,OAAO,IAAI,OAAO,CAExB;IAED;;;;OAIG;IACH,QAAQ,CAAC,UAAU,SAAgB,GAAG,MAAM,CAE3C;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAE/B;IAED;;;;OAIG;IACI,OAAO,OAEb;CACF"}
|
package/dest/abi/selector.js
CHANGED
|
@@ -4,7 +4,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
4
4
|
import { bufferToHex } from '@aztec/foundation/string';
|
|
5
5
|
import { inspect } from 'util';
|
|
6
6
|
_computedKey = inspect.custom;
|
|
7
|
-
/** A selector is the
|
|
7
|
+
/** A selector is the low 4 bytes of the poseidon2 hash of a signature. */ export class Selector {
|
|
8
8
|
value;
|
|
9
9
|
/** The size of the selector in bytes. */ static SIZE = 4;
|
|
10
10
|
constructor(/** Value of the selector */ value){
|
|
@@ -2,26 +2,12 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
2
2
|
import type { ZodFor } from '@aztec/foundation/schemas';
|
|
3
3
|
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
4
4
|
import { inspect } from 'util';
|
|
5
|
-
/**
|
|
6
|
-
* Tracks which revertible phases of a transaction's public execution reverted.
|
|
7
|
-
*
|
|
8
|
-
* A transaction executes in three sequential phases:
|
|
9
|
-
* 1. SETUP – non-revertible; if this fails the entire transaction is rejected.
|
|
10
|
-
* 2. APP_LOGIC – revertible; its state changes are rolled back on failure.
|
|
11
|
-
* 3. TEARDOWN – revertible; always runs (even after app-logic revert) so the fee-payment contract can clean up.
|
|
12
|
-
*
|
|
13
|
-
* Only APP_LOGIC and TEARDOWN can produce a revert code. SETUP failures throw instead and discard the transaction
|
|
14
|
-
* entirely.
|
|
15
|
-
*/
|
|
5
|
+
/** Whether a transaction's public execution reverted. */
|
|
16
6
|
export declare enum RevertCodeEnum {
|
|
17
7
|
/** All phases completed successfully; no state was rolled back. */
|
|
18
8
|
OK = 0,
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
/** TEARDOWN reverted; its state changes were discarded. APP_LOGIC succeeded. */
|
|
22
|
-
TEARDOWN_REVERTED = 2,
|
|
23
|
-
/** Both APP_LOGIC and TEARDOWN reverted; only SETUP effects are kept. */
|
|
24
|
-
BOTH_REVERTED = 3
|
|
9
|
+
/** One or more revertible phases reverted; their state changes were discarded. */
|
|
10
|
+
REVERTED = 1
|
|
25
11
|
}
|
|
26
12
|
/**
|
|
27
13
|
* Wrapper class over a field to safely represent a revert code.
|
|
@@ -30,8 +16,12 @@ export declare class RevertCode {
|
|
|
30
16
|
private code;
|
|
31
17
|
private constructor();
|
|
32
18
|
static readonly OK: RevertCode;
|
|
19
|
+
static readonly REVERTED: RevertCode;
|
|
20
|
+
/** @deprecated Use REVERTED instead. */
|
|
33
21
|
static readonly APP_LOGIC_REVERTED: RevertCode;
|
|
22
|
+
/** @deprecated Use REVERTED instead. */
|
|
34
23
|
static readonly TEARDOWN_REVERTED: RevertCode;
|
|
24
|
+
/** @deprecated Use REVERTED instead. */
|
|
35
25
|
static readonly BOTH_REVERTED: RevertCode;
|
|
36
26
|
getCode(): RevertCodeEnum;
|
|
37
27
|
equals(other: RevertCode): boolean;
|
|
@@ -67,4 +57,4 @@ export declare class RevertCode {
|
|
|
67
57
|
static random(): RevertCode;
|
|
68
58
|
[inspect.custom](): string;
|
|
69
59
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJ0X2NvZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vcmV2ZXJ0X2NvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQix5REFBeUQ7QUFDekQsb0JBQVksY0FBYztJQUN4QixtRUFBbUU7SUFDbkUsRUFBRSxJQUFJO0lBQ04sa0ZBQWtGO0lBQ2xGLFFBQVEsSUFBSTtDQUNiO0FBT0Q7O0dBRUc7QUFDSCxxQkFBYSxVQUFVO0lBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQVM7SUFDckIsT0FBTyxlQUVOO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFxQztJQUNuRSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQTJDO0lBQy9FLHdDQUF3QztJQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBdUI7SUFDckUsd0NBQXdDO0lBQ3hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUF1QjtJQUNwRSx3Q0FBd0M7SUFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUF1QjtJQUV6RCxPQUFPLElBQUksY0FBYyxDQUUvQjtJQUVNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FFeEM7SUFFTSxJQUFJLElBQUksT0FBTyxDQUVyQjtJQUVNLGNBQWMsV0FTcEI7SUFFTSxNQUFNLFdBRVo7SUFFRCxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FNdEM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQVMzQztJQUVEOzs7OztPQUtHO0lBRUgsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQU07SUFDN0MsY0FBYyxJQUFJLE1BQU0sQ0FHOUI7SUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBSztJQUMxQyxRQUFRLElBQUksTUFBTSxDQUl4QjtJQUVNLE9BQU8sSUFBSSxFQUFFLENBRW5CO0lBRU0sbUJBQW1CLElBQUksTUFBTSxDQUVuQztJQUVELE9BQWMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUtqRDtJQUVELE9BQWMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUU3QztJQUVELE9BQWMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUcsVUFBVSxDQUcvRDtJQUVELE9BQWMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FJbEU7SUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUs7SUFDeEMsTUFBTSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBRTFCO0lBRUQsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBRWY7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revert_code.d.ts","sourceRoot":"","sources":["../../src/avm/revert_code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B
|
|
1
|
+
{"version":3,"file":"revert_code.d.ts","sourceRoot":"","sources":["../../src/avm/revert_code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,yDAAyD;AACzD,oBAAY,cAAc;IACxB,mEAAmE;IACnE,EAAE,IAAI;IACN,kFAAkF;IAClF,QAAQ,IAAI;CACb;AAOD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,eAEN;IACD,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAqC;IACnE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAA2C;IAC/E,wCAAwC;IACxC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,UAAU,CAAuB;IACrE,wCAAwC;IACxC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAuB;IACpE,wCAAwC;IACxC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAuB;IAEzD,OAAO,IAAI,cAAc,CAE/B;IAEM,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAExC;IAEM,IAAI,IAAI,OAAO,CAErB;IAEM,cAAc,WASpB;IAEM,MAAM,WAEZ;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAMtC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAS3C;IAED;;;;;OAKG;IAEH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAM;IAC7C,cAAc,IAAI,MAAM,CAG9B;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAC1C,QAAQ,IAAI,MAAM,CAIxB;IAEM,OAAO,IAAI,EAAE,CAEnB;IAEM,mBAAmB,IAAI,MAAM,CAEnC;IAED,OAAc,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAKjD;IAED,OAAc,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,UAAU,CAE7C;IAED,OAAc,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,UAAU,CAG/D;IAED,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAIlE;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,MAAM,CAAC,MAAM,IAAI,UAAU,CAE1B;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;CACF"}
|
package/dest/avm/revert_code.js
CHANGED
|
@@ -3,25 +3,13 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
4
4
|
import { inspect } from 'util';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
/**
|
|
7
|
-
* Tracks which revertible phases of a transaction's public execution reverted.
|
|
8
|
-
*
|
|
9
|
-
* A transaction executes in three sequential phases:
|
|
10
|
-
* 1. SETUP – non-revertible; if this fails the entire transaction is rejected.
|
|
11
|
-
* 2. APP_LOGIC – revertible; its state changes are rolled back on failure.
|
|
12
|
-
* 3. TEARDOWN – revertible; always runs (even after app-logic revert) so the fee-payment contract can clean up.
|
|
13
|
-
*
|
|
14
|
-
* Only APP_LOGIC and TEARDOWN can produce a revert code. SETUP failures throw instead and discard the transaction
|
|
15
|
-
* entirely.
|
|
16
|
-
*/ export var RevertCodeEnum = /*#__PURE__*/ function(RevertCodeEnum) {
|
|
6
|
+
/** Whether a transaction's public execution reverted. */ export var RevertCodeEnum = /*#__PURE__*/ function(RevertCodeEnum) {
|
|
17
7
|
/** All phases completed successfully; no state was rolled back. */ RevertCodeEnum[RevertCodeEnum["OK"] = 0] = "OK";
|
|
18
|
-
/**
|
|
19
|
-
/** TEARDOWN reverted; its state changes were discarded. APP_LOGIC succeeded. */ RevertCodeEnum[RevertCodeEnum["TEARDOWN_REVERTED"] = 2] = "TEARDOWN_REVERTED";
|
|
20
|
-
/** Both APP_LOGIC and TEARDOWN reverted; only SETUP effects are kept. */ RevertCodeEnum[RevertCodeEnum["BOTH_REVERTED"] = 3] = "BOTH_REVERTED";
|
|
8
|
+
/** One or more revertible phases reverted; their state changes were discarded. */ RevertCodeEnum[RevertCodeEnum["REVERTED"] = 1] = "REVERTED";
|
|
21
9
|
return RevertCodeEnum;
|
|
22
10
|
}({});
|
|
23
|
-
function
|
|
24
|
-
return value
|
|
11
|
+
/** Returns a valid RevertCodeEnum, coercing any value >= 1 to REVERTED. */ function toRevertCodeEnum(value) {
|
|
12
|
+
return value >= 1 ? 1 : 0;
|
|
25
13
|
}
|
|
26
14
|
_computedKey = inspect.custom;
|
|
27
15
|
/**
|
|
@@ -32,9 +20,10 @@ _computedKey = inspect.custom;
|
|
|
32
20
|
this.code = e.valueOf();
|
|
33
21
|
}
|
|
34
22
|
static OK = new RevertCode(0);
|
|
35
|
-
static
|
|
36
|
-
static
|
|
37
|
-
static
|
|
23
|
+
static REVERTED = new RevertCode(1);
|
|
24
|
+
/** @deprecated Use REVERTED instead. */ static APP_LOGIC_REVERTED = RevertCode.REVERTED;
|
|
25
|
+
/** @deprecated Use REVERTED instead. */ static TEARDOWN_REVERTED = RevertCode.REVERTED;
|
|
26
|
+
/** @deprecated Use REVERTED instead. */ static BOTH_REVERTED = RevertCode.REVERTED;
|
|
38
27
|
getCode() {
|
|
39
28
|
return this.code;
|
|
40
29
|
}
|
|
@@ -49,11 +38,7 @@ _computedKey = inspect.custom;
|
|
|
49
38
|
case 0:
|
|
50
39
|
return 'OK';
|
|
51
40
|
case 1:
|
|
52
|
-
return '
|
|
53
|
-
case 2:
|
|
54
|
-
return 'Teardown reverted';
|
|
55
|
-
case 3:
|
|
56
|
-
return 'Both reverted';
|
|
41
|
+
return 'Reverted';
|
|
57
42
|
default:
|
|
58
43
|
return `Unknown RevertCode: ${this.code}`;
|
|
59
44
|
}
|
|
@@ -62,7 +47,7 @@ _computedKey = inspect.custom;
|
|
|
62
47
|
return this.code;
|
|
63
48
|
}
|
|
64
49
|
static get schema() {
|
|
65
|
-
return z.
|
|
50
|
+
return z.number().int().min(0).transform((value)=>new RevertCode(toRevertCodeEnum(value)));
|
|
66
51
|
}
|
|
67
52
|
/**
|
|
68
53
|
* Creates a RevertCode from a plain object without Zod validation.
|
|
@@ -75,10 +60,10 @@ _computedKey = inspect.custom;
|
|
|
75
60
|
return obj;
|
|
76
61
|
}
|
|
77
62
|
const code = typeof obj === 'number' ? obj : obj.code ?? obj;
|
|
78
|
-
if (
|
|
63
|
+
if (typeof code !== 'number' || code < 0) {
|
|
79
64
|
throw new Error(`Invalid RevertCode: ${code}`);
|
|
80
65
|
}
|
|
81
|
-
return new RevertCode(code);
|
|
66
|
+
return new RevertCode(toRevertCodeEnum(code));
|
|
82
67
|
}
|
|
83
68
|
/**
|
|
84
69
|
* Having different serialization methods allows for
|
|
@@ -106,10 +91,10 @@ _computedKey = inspect.custom;
|
|
|
106
91
|
return this.toBuffer().length;
|
|
107
92
|
}
|
|
108
93
|
static fromNumber(code) {
|
|
109
|
-
if (
|
|
94
|
+
if (code < 0) {
|
|
110
95
|
throw new Error(`Invalid RevertCode: ${code}`);
|
|
111
96
|
}
|
|
112
|
-
return new RevertCode(code);
|
|
97
|
+
return new RevertCode(toRevertCodeEnum(code));
|
|
113
98
|
}
|
|
114
99
|
static fromField(field) {
|
|
115
100
|
return RevertCode.fromNumber(field.toNumber());
|
|
@@ -123,7 +108,7 @@ _computedKey = inspect.custom;
|
|
|
123
108
|
const code = reader.readBytes(RevertCode.PACKED_SIZE_IN_BYTES).readUInt8(0);
|
|
124
109
|
return RevertCode.fromNumber(code);
|
|
125
110
|
}
|
|
126
|
-
static NUM_OPTIONS =
|
|
111
|
+
static NUM_OPTIONS = 2;
|
|
127
112
|
static random() {
|
|
128
113
|
return new RevertCode(Math.floor(Math.random() * RevertCode.NUM_OPTIONS));
|
|
129
114
|
}
|
|
@@ -4,6 +4,16 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { Gas } from './gas.js';
|
|
6
6
|
import { GasFees } from './gas_fees.js';
|
|
7
|
+
/** Approximate max DA gas limit. Arbitrary, assuming 4 blocks per checkpoint — users should use gas estimation. */
|
|
8
|
+
export declare const APPROXIMATE_MAX_DA_GAS_PER_BLOCK: number;
|
|
9
|
+
/** Fallback teardown L2 gas limit. Arbitrary — users should use gas estimation. */
|
|
10
|
+
export declare const FALLBACK_TEARDOWN_L2_GAS_LIMIT: number;
|
|
11
|
+
/** Fallback teardown DA gas limit. Arbitrary — users should use gas estimation. */
|
|
12
|
+
export declare const FALLBACK_TEARDOWN_DA_GAS_LIMIT: number;
|
|
13
|
+
export declare const GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT = 6540000;
|
|
14
|
+
export declare const GAS_ESTIMATION_L2_GAS_LIMIT: number;
|
|
15
|
+
export declare const GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT = 786432;
|
|
16
|
+
export declare const GAS_ESTIMATION_DA_GAS_LIMIT: number;
|
|
7
17
|
/** Gas usage and fees limits set by the transaction sender for different dimensions and phases. */
|
|
8
18
|
export declare class GasSettings {
|
|
9
19
|
readonly gasLimits: Gas;
|
|
@@ -124,8 +134,35 @@ export declare class GasSettings {
|
|
|
124
134
|
getFeeLimit(): Fr;
|
|
125
135
|
/** Zero-value gas settings. */
|
|
126
136
|
static empty(): GasSettings;
|
|
127
|
-
/**
|
|
128
|
-
|
|
137
|
+
/**
|
|
138
|
+
* Fills in gas limits high enough for transactions to be included in most cases.
|
|
139
|
+
* gasLimits is set to the maximum the protocol allows; since teardown gas is reserved
|
|
140
|
+
* from gasLimits during private execution (see gas_meter.nr), the effective gas available
|
|
141
|
+
* for app logic will be gasLimits - teardownGasLimits - privateOverhead.
|
|
142
|
+
* The DA gas limit is set to an approximate max per block assuming 4 blocks per checkpoint,
|
|
143
|
+
* since using the maximum per checkpoint would cause nodes to reject transactions.
|
|
144
|
+
* These values won't work if:
|
|
145
|
+
* - Teardown consumes more than the arbitrarily assigned fallback limits
|
|
146
|
+
* - The rest of the transaction consumes more than the remaining gas after teardown
|
|
147
|
+
* - The DA gas limit is too low for the transaction, while still within the checkpoint limit
|
|
148
|
+
*/
|
|
149
|
+
static fallback(overrides: {
|
|
150
|
+
gasLimits?: Gas;
|
|
151
|
+
teardownGasLimits?: Gas;
|
|
152
|
+
maxFeesPerGas: GasFees;
|
|
153
|
+
maxPriorityFeesPerGas?: GasFees;
|
|
154
|
+
}): GasSettings;
|
|
155
|
+
/**
|
|
156
|
+
* Gas settings for simulation/estimation only.
|
|
157
|
+
* Since teardown gas is reserved upfront from gasLimits during private execution (see gas_meter.nr),
|
|
158
|
+
* the effective gas available for app logic is gasLimits - teardownGasLimits - privateOverhead.
|
|
159
|
+
* To ensure estimation never hits gas caps, we set both limits above what the protocol allows:
|
|
160
|
+
* teardown gets MAX_PROCESSABLE and gasLimits gets teardown + MAX_PROCESSABLE, so the full
|
|
161
|
+
* processable amount remains available for each phase independently. To be used in conjunction
|
|
162
|
+
* with skipTxValidation: true during public simulation, or the node would reject the transaction
|
|
163
|
+
* outright due to gas limits being above protocol max.
|
|
164
|
+
*/
|
|
165
|
+
static forEstimation(overrides: {
|
|
129
166
|
gasLimits?: Gas;
|
|
130
167
|
teardownGasLimits?: Gas;
|
|
131
168
|
maxFeesPerGas: GasFees;
|
|
@@ -139,4 +176,4 @@ export declare class GasSettings {
|
|
|
139
176
|
toFields(): Fr[];
|
|
140
177
|
static getFields(fields: FieldsOf<GasSettings>): readonly [Gas, Gas, GasFees, GasFees];
|
|
141
178
|
}
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzX3NldHRpbmdzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2FzL2dhc19zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXdDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsR0FBRyxFQUFpQixNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhDLHFIQUFtSDtBQUNuSCxlQUFPLE1BQU0sZ0NBQWdDLFFBQXdELENBQUM7QUFDdEcscUZBQW1GO0FBQ25GLGVBQU8sTUFBTSw4QkFBOEIsUUFBeUMsQ0FBQztBQUNyRixxRkFBbUY7QUFDbkYsZUFBTyxNQUFNLDhCQUE4QixRQUFtRCxDQUFDO0FBSy9GLGVBQU8sTUFBTSxvQ0FBb0MsVUFBeUIsQ0FBQztBQUMzRSxlQUFPLE1BQU0sMkJBQTJCLFFBQWdFLENBQUM7QUFDekcsZUFBTyxNQUFNLG9DQUFvQyxTQUF3QyxDQUFDO0FBQzFGLGVBQU8sTUFBTSwyQkFBMkIsUUFBK0UsQ0FBQztBQUd4SCxtR0FBbUc7QUFDbkcscUJBQWEsV0FBVzthQUVKLFNBQVMsRUFBRSxHQUFHO2FBQ2QsaUJBQWlCLEVBQUUsR0FBRzthQUN0QixhQUFhLEVBQUUsT0FBTzthQUN0QixxQkFBcUIsRUFBRSxPQUFPO0lBSmhELFlBQ2tCLFNBQVMsRUFBRSxHQUFHLEVBQ2QsaUJBQWlCLEVBQUUsR0FBRyxFQUN0QixhQUFhLEVBQUUsT0FBTyxFQUN0QixxQkFBcUIsRUFBRSxPQUFPLEVBQzVDO0lBR0osTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BU2hCO0lBRUQsT0FBTyxJQUFJLE1BQU0sQ0FFaEI7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNoQixTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxhQUFhLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUMxQyxlQU9BO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLFdBQVcsQ0FVNUM7SUFFRCxLQUFLLGdCQU9KO0lBRUQsbUZBQW1GO0lBQ25GLFdBQVcsT0FLVjtJQUVELCtCQUErQjtJQUMvQixNQUFNLENBQUMsS0FBSyxnQkFFWDtJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7UUFDekIsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQ2hCLGlCQUFpQixDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQ3hCLGFBQWEsRUFBRSxPQUFPLENBQUM7UUFDdkIscUJBQXFCLENBQUMsRUFBRSxPQUFPLENBQUM7S0FDakMsZUFhQTtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFO1FBQzlCLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUNoQixpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUN4QixhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQ3ZCLHFCQUFxQixDQUFDLEVBQUUsT0FBTyxDQUFDO0tBQ2pDLGVBYUE7SUFFRCxPQUFPLFlBT047SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsV0FPeEI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFdBQVcsQ0FRNUQ7SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FRekQ7SUFFRCxRQUFRLElBQUksRUFBRSxFQUFFLENBUWY7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLHlDQUU3QztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas_settings.d.ts","sourceRoot":"","sources":["../../src/gas/gas_settings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gas_settings.d.ts","sourceRoot":"","sources":["../../src/gas/gas_settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAC9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAiB,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,qHAAmH;AACnH,eAAO,MAAM,gCAAgC,QAAwD,CAAC;AACtG,qFAAmF;AACnF,eAAO,MAAM,8BAA8B,QAAyC,CAAC;AACrF,qFAAmF;AACnF,eAAO,MAAM,8BAA8B,QAAmD,CAAC;AAK/F,eAAO,MAAM,oCAAoC,UAAyB,CAAC;AAC3E,eAAO,MAAM,2BAA2B,QAAgE,CAAC;AACzG,eAAO,MAAM,oCAAoC,SAAwC,CAAC;AAC1F,eAAO,MAAM,2BAA2B,QAA+E,CAAC;AAGxH,mGAAmG;AACnG,qBAAa,WAAW;aAEJ,SAAS,EAAE,GAAG;aACd,iBAAiB,EAAE,GAAG;aACtB,aAAa,EAAE,OAAO;aACtB,qBAAqB,EAAE,OAAO;IAJhD,YACkB,SAAS,EAAE,GAAG,EACd,iBAAiB,EAAE,GAAG,EACtB,aAAa,EAAE,OAAO,EACtB,qBAAqB,EAAE,OAAO,EAC5C;IAGJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAShB;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QAChB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzB,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC1C,eAOA;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAU5C;IAED,KAAK,gBAOJ;IAED,mFAAmF;IACnF,WAAW,OAKV;IAED,+BAA+B;IAC/B,MAAM,CAAC,KAAK,gBAEX;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;QACzB,SAAS,CAAC,EAAE,GAAG,CAAC;QAChB,iBAAiB,CAAC,EAAE,GAAG,CAAC;QACxB,aAAa,EAAE,OAAO,CAAC;QACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,eAaA;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE;QAC9B,SAAS,CAAC,EAAE,GAAG,CAAC;QAChB,iBAAiB,CAAC,EAAE,GAAG,CAAC;QACxB,aAAa,EAAE,OAAO,CAAC;QACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,eAaA;IAED,OAAO,YAON;IAED,MAAM,CAAC,KAAK,EAAE,WAAW,WAOxB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAQ5D;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,WAAW,CAQzD;IAED,QAAQ,IAAI,EAAE,EAAE,CAQf;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,yCAE7C;CACF"}
|
package/dest/gas/gas_settings.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GAS_SETTINGS_LENGTH, MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS } from '@aztec/constants';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { Gas, GasDimensions } from './gas.js';
|
|
6
6
|
import { GasFees } from './gas_fees.js';
|
|
7
|
+
/** Approximate max DA gas limit. Arbitrary, assuming 4 blocks per checkpoint — users should use gas estimation. */ export const APPROXIMATE_MAX_DA_GAS_PER_BLOCK = Math.floor(MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT / 4);
|
|
8
|
+
/** Fallback teardown L2 gas limit. Arbitrary — users should use gas estimation. */ export const FALLBACK_TEARDOWN_L2_GAS_LIMIT = Math.floor(MAX_PROCESSABLE_L2_GAS / 8);
|
|
9
|
+
/** Fallback teardown DA gas limit. Arbitrary — users should use gas estimation. */ export const FALLBACK_TEARDOWN_DA_GAS_LIMIT = Math.floor(APPROXIMATE_MAX_DA_GAS_PER_BLOCK / 2);
|
|
10
|
+
// For gas estimation, we use intentionally high limits above what the network can process,
|
|
11
|
+
// so the simulation runs without hitting gas caps. Since teardown gas is counted towards total,
|
|
12
|
+
// the total estimation limit is teardown + max processable.
|
|
13
|
+
export const GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT = MAX_PROCESSABLE_L2_GAS;
|
|
14
|
+
export const GAS_ESTIMATION_L2_GAS_LIMIT = GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT + MAX_PROCESSABLE_L2_GAS;
|
|
15
|
+
export const GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
|
|
16
|
+
export const GAS_ESTIMATION_DA_GAS_LIMIT = GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT + MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
|
|
7
17
|
// docs:start:gas_settings_vars
|
|
8
18
|
/** Gas usage and fees limits set by the transaction sender for different dimensions and phases. */ export class GasSettings {
|
|
9
19
|
gasLimits;
|
|
@@ -52,15 +62,49 @@ import { GasFees } from './gas_fees.js';
|
|
|
52
62
|
/** Zero-value gas settings. */ static empty() {
|
|
53
63
|
return new GasSettings(Gas.empty(), Gas.empty(), GasFees.empty(), GasFees.empty());
|
|
54
64
|
}
|
|
55
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Fills in gas limits high enough for transactions to be included in most cases.
|
|
67
|
+
* gasLimits is set to the maximum the protocol allows; since teardown gas is reserved
|
|
68
|
+
* from gasLimits during private execution (see gas_meter.nr), the effective gas available
|
|
69
|
+
* for app logic will be gasLimits - teardownGasLimits - privateOverhead.
|
|
70
|
+
* The DA gas limit is set to an approximate max per block assuming 4 blocks per checkpoint,
|
|
71
|
+
* since using the maximum per checkpoint would cause nodes to reject transactions.
|
|
72
|
+
* These values won't work if:
|
|
73
|
+
* - Teardown consumes more than the arbitrarily assigned fallback limits
|
|
74
|
+
* - The rest of the transaction consumes more than the remaining gas after teardown
|
|
75
|
+
* - The DA gas limit is too low for the transaction, while still within the checkpoint limit
|
|
76
|
+
*/ static fallback(overrides) {
|
|
77
|
+
return GasSettings.from({
|
|
78
|
+
gasLimits: overrides.gasLimits ?? {
|
|
79
|
+
l2Gas: MAX_PROCESSABLE_L2_GAS,
|
|
80
|
+
daGas: APPROXIMATE_MAX_DA_GAS_PER_BLOCK
|
|
81
|
+
},
|
|
82
|
+
teardownGasLimits: overrides.teardownGasLimits ?? {
|
|
83
|
+
l2Gas: FALLBACK_TEARDOWN_L2_GAS_LIMIT,
|
|
84
|
+
daGas: FALLBACK_TEARDOWN_DA_GAS_LIMIT
|
|
85
|
+
},
|
|
86
|
+
maxFeesPerGas: overrides.maxFeesPerGas,
|
|
87
|
+
maxPriorityFeesPerGas: overrides.maxPriorityFeesPerGas ?? GasFees.empty()
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Gas settings for simulation/estimation only.
|
|
92
|
+
* Since teardown gas is reserved upfront from gasLimits during private execution (see gas_meter.nr),
|
|
93
|
+
* the effective gas available for app logic is gasLimits - teardownGasLimits - privateOverhead.
|
|
94
|
+
* To ensure estimation never hits gas caps, we set both limits above what the protocol allows:
|
|
95
|
+
* teardown gets MAX_PROCESSABLE and gasLimits gets teardown + MAX_PROCESSABLE, so the full
|
|
96
|
+
* processable amount remains available for each phase independently. To be used in conjunction
|
|
97
|
+
* with skipTxValidation: true during public simulation, or the node would reject the transaction
|
|
98
|
+
* outright due to gas limits being above protocol max.
|
|
99
|
+
*/ static forEstimation(overrides) {
|
|
56
100
|
return GasSettings.from({
|
|
57
101
|
gasLimits: overrides.gasLimits ?? {
|
|
58
|
-
l2Gas:
|
|
59
|
-
daGas:
|
|
102
|
+
l2Gas: GAS_ESTIMATION_L2_GAS_LIMIT,
|
|
103
|
+
daGas: GAS_ESTIMATION_DA_GAS_LIMIT
|
|
60
104
|
},
|
|
61
105
|
teardownGasLimits: overrides.teardownGasLimits ?? {
|
|
62
|
-
l2Gas:
|
|
63
|
-
daGas:
|
|
106
|
+
l2Gas: GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT,
|
|
107
|
+
daGas: GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT
|
|
64
108
|
},
|
|
65
109
|
maxFeesPerGas: overrides.maxFeesPerGas,
|
|
66
110
|
maxPriorityFeesPerGas: overrides.maxPriorityFeesPerGas ?? GasFees.empty()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defaultFetch } from '@aztec/foundation/json-rpc/client';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import type { ApiSchemaFor } from '../schemas/schemas.js';
|
|
4
|
-
import { type Offense
|
|
4
|
+
import { type Offense } from '../slashing/index.js';
|
|
5
5
|
import { type ComponentsVersions } from '../versioning/index.js';
|
|
6
6
|
import { type ArchiverSpecificConfig } from './archiver.js';
|
|
7
7
|
import { type SequencerConfig } from './configs.js';
|
|
@@ -30,14 +30,13 @@ export interface AztecNodeAdmin {
|
|
|
30
30
|
* Pauses syncing and rolls back the database to the target L2 block number.
|
|
31
31
|
* @param targetBlockNumber - The block number to roll back to.
|
|
32
32
|
* @param force - If true, clears the world state db and p2p dbs if rolling back to behind the finalized block.
|
|
33
|
+
* @param resumeSync - If true (default), resumes archiver and world state sync after rollback.
|
|
33
34
|
*/
|
|
34
|
-
rollbackTo(targetBlockNumber: number, force?: boolean): Promise<void>;
|
|
35
|
+
rollbackTo(targetBlockNumber: number, force?: boolean, resumeSync?: boolean): Promise<void>;
|
|
35
36
|
/** Pauses archiver and world state syncing. */
|
|
36
37
|
pauseSync(): Promise<void>;
|
|
37
38
|
/** Resumes archiver and world state syncing. */
|
|
38
39
|
resumeSync(): Promise<void>;
|
|
39
|
-
/** Returns all monitored payloads by the slasher for the current round. */
|
|
40
|
-
getSlashPayloads(): Promise<SlashPayloadRound[]>;
|
|
41
40
|
/** Returns all offenses applicable for the given round. */
|
|
42
41
|
getSlashOffenses(round: bigint | 'all' | 'current'): Promise<Offense[]>;
|
|
43
42
|
/**
|
|
@@ -98,8 +97,6 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
98
97
|
minBlocksForCheckpoint: z.ZodOptional<z.ZodNumber>;
|
|
99
98
|
skipPublishingCheckpointsPercent: z.ZodOptional<z.ZodNumber>;
|
|
100
99
|
slashOverridePayload: z.ZodOptional<z.ZodType<import("@aztec/foundation/eth-address").EthAddress, any, string>>;
|
|
101
|
-
slashMinPenaltyPercentage: z.ZodNumber;
|
|
102
|
-
slashMaxPenaltyPercentage: z.ZodNumber;
|
|
103
100
|
slashValidatorsAlways: z.ZodArray<z.ZodType<import("@aztec/foundation/eth-address").EthAddress, any, string>, "many">;
|
|
104
101
|
slashValidatorsNever: z.ZodArray<z.ZodType<import("@aztec/foundation/eth-address").EthAddress, any, string>, "many">;
|
|
105
102
|
slashPrunePenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
@@ -259,8 +256,6 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
259
256
|
archiverBatchSize?: number | undefined;
|
|
260
257
|
skipValidateCheckpointAttestations?: boolean | undefined;
|
|
261
258
|
slashOverridePayload?: import("@aztec/foundation/eth-address").EthAddress | undefined;
|
|
262
|
-
slashMinPenaltyPercentage: number;
|
|
263
|
-
slashMaxPenaltyPercentage: number;
|
|
264
259
|
slashValidatorsAlways: import("@aztec/foundation/eth-address").EthAddress[];
|
|
265
260
|
slashValidatorsNever: import("@aztec/foundation/eth-address").EthAddress[];
|
|
266
261
|
slashPrunePenalty: bigint;
|
|
@@ -371,8 +366,6 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
371
366
|
archiverBatchSize?: string | number | bigint | undefined;
|
|
372
367
|
skipValidateCheckpointAttestations?: boolean | undefined;
|
|
373
368
|
slashOverridePayload?: string | undefined;
|
|
374
|
-
slashMinPenaltyPercentage: number;
|
|
375
|
-
slashMaxPenaltyPercentage: number;
|
|
376
369
|
slashValidatorsAlways: string[];
|
|
377
370
|
slashValidatorsNever: string[];
|
|
378
371
|
slashPrunePenalty: string | number | bigint;
|
|
@@ -434,4 +427,4 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
434
427
|
}>;
|
|
435
428
|
export declare const AztecNodeAdminApiSchema: ApiSchemaFor<AztecNodeAdmin>;
|
|
436
429
|
export declare function createAztecNodeAdminClient(url: string, versions?: Partial<ComponentsVersions>, fetch?: typeof defaultFetch, apiKey?: string): AztecNodeAdmin;
|
|
437
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
430
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMtbm9kZS1hZG1pbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXp0ZWMtbm9kZS1hZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFGLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLEtBQUssT0FBTyxFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFnQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxLQUFLLHNCQUFzQixFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXlCLE1BQU0sY0FBYyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBc0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUFtQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpHOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGNBQWM7SUFDN0I7O09BRUc7SUFDSCxTQUFTLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFM0M7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsb0JBQW9CLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEU7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVGLCtDQUErQztJQUMvQyxTQUFTLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNCLGdEQUFnRDtJQUNoRCxVQUFVLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVCLDJEQUEyRDtJQUMzRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEtBQUssR0FBRyxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFeEU7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBQ0gsY0FBYyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUNqQztBQUdELE1BQU0sTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsYUFBYSxDQUFDLEdBQy9FLGVBQWUsR0FDZixZQUFZLEdBQ1osYUFBYSxHQUNiLElBQUksQ0FDRixzQkFBc0IsRUFDdEIsMkJBQTJCLEdBQUcsbUJBQW1CLEdBQUcsb0NBQW9DLENBQ3pGLEdBQUc7SUFDRixpQkFBaUIsRUFBRSxNQUFNLENBQUM7Q0FDM0IsQ0FBQztBQUVKLGVBQU8sTUFBTSwwQkFBMEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBVWMsQ0FBQztBQUV0RCxlQUFPLE1BQU0sdUJBQXVCLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FZaEUsQ0FBQztBQUVGLHdCQUFnQiwwQkFBMEIsQ0FDeEMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEdBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFNLEVBQzFDLEtBQUssc0JBQWUsRUFDcEIsTUFBTSxDQUFDLEVBQUUsTUFBTSxHQUNkLGNBQWMsQ0FPaEIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,sBAAsB,EAAgC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,KAAK,yBAAyB,EAAmC,MAAM,gBAAgB,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;;OAKG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5F,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,2DAA2D;IAC3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAExE;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAGD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,EAAE,aAAa,CAAC,GAC/E,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CACF,sBAAsB,EACtB,2BAA2B,GAAG,mBAAmB,GAAG,oCAAoC,CACzF,GAAG;IACF,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUc,CAAC;AAEtD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAYhE,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,OAAO,CAAC,kBAAkB,CAAM,EAC1C,KAAK,sBAAe,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,cAAc,CAOhB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createSafeJsonRpcClient, defaultFetch } from '@aztec/foundation/json-rpc/client';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import {
|
|
3
|
+
import { optional } from '../schemas/schemas.js';
|
|
4
|
+
import { OffenseSchema } from '../slashing/index.js';
|
|
4
5
|
import { getVersioningResponseHandler } from '../versioning/index.js';
|
|
5
6
|
import { ArchiverSpecificConfigSchema } from './archiver.js';
|
|
6
7
|
import { SequencerConfigSchema } from './configs.js';
|
|
@@ -20,10 +21,9 @@ export const AztecNodeAdminApiSchema = {
|
|
|
20
21
|
getConfig: z.function().returns(AztecNodeAdminConfigSchema),
|
|
21
22
|
setConfig: z.function().args(AztecNodeAdminConfigSchema.partial()).returns(z.void()),
|
|
22
23
|
startSnapshotUpload: z.function().args(z.string()).returns(z.void()),
|
|
23
|
-
rollbackTo: z.function().args(z.number()).returns(z.void()),
|
|
24
|
+
rollbackTo: z.function().args(z.number(), optional(z.boolean()), optional(z.boolean())).returns(z.void()),
|
|
24
25
|
pauseSync: z.function().returns(z.void()),
|
|
25
26
|
resumeSync: z.function().returns(z.void()),
|
|
26
|
-
getSlashPayloads: z.function().returns(z.array(SlashPayloadRoundSchema)),
|
|
27
27
|
getSlashOffenses: z.function().args(z.union([
|
|
28
28
|
z.bigint(),
|
|
29
29
|
z.literal('all'),
|