@aztec/stdlib 5.0.0-nightly.20260405 → 5.0.0-nightly.20260407
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/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/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/package.json +8 -8
- package/src/avm/revert_code.ts +25 -39
- package/src/tx/tx_receipt.ts +11 -14
|
@@ -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
|
}
|
package/dest/tx/tx_receipt.d.ts
CHANGED
|
@@ -18,9 +18,13 @@ export declare const SortedTxStatuses: TxStatus[];
|
|
|
18
18
|
/** Execution result - only set when tx is in a block. */
|
|
19
19
|
export declare enum TxExecutionResult {
|
|
20
20
|
SUCCESS = "success",
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
REVERTED = "reverted",
|
|
22
|
+
/** @deprecated Use REVERTED instead. */
|
|
23
|
+
APP_LOGIC_REVERTED = "reverted",
|
|
24
|
+
/** @deprecated Use REVERTED instead. */
|
|
25
|
+
TEARDOWN_REVERTED = "reverted",
|
|
26
|
+
/** @deprecated Use REVERTED instead. */
|
|
27
|
+
BOTH_REVERTED = "reverted"
|
|
24
28
|
}
|
|
25
29
|
/**
|
|
26
30
|
* Represents a transaction receipt in the Aztec network.
|
|
@@ -99,4 +103,4 @@ export declare class TxReceipt {
|
|
|
99
103
|
}): TxReceipt;
|
|
100
104
|
static executionResultFromRevertCode(revertCode: RevertCode): TxExecutionResult;
|
|
101
105
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcmVjZWlwdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R4L3R4X3JlY2VpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBcUIsV0FBVyxFQUFxQixNQUFNLGlDQUFpQyxDQUFDO0FBSWpILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBVyxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsMkNBQTJDO0FBQzNDLG9CQUFZLFFBQVE7SUFDbEIsT0FBTyxZQUFZO0lBQ25CLE9BQU8sWUFBWTtJQUNuQixRQUFRLGFBQWE7SUFDckIsWUFBWSxpQkFBaUI7SUFDN0IsTUFBTSxXQUFXO0lBQ2pCLFNBQVMsY0FBYztDQUN4QjtBQUVELGlEQUFpRDtBQUNqRCxlQUFPLE1BQU0sZ0JBQWdCLEVBQUUsUUFBUSxFQU90QyxDQUFDO0FBRUYseURBQXlEO0FBQ3pELG9CQUFZLGlCQUFpQjtJQUMzQixPQUFPLFlBQVk7SUFDbkIsUUFBUSxhQUFhO0lBQ3JCLHdDQUF3QztJQUV4QyxrQkFBa0IsYUFBYTtJQUMvQix3Q0FBd0M7SUFFeEMsaUJBQWlCLGFBQWE7SUFDOUIsd0NBQXdDO0lBRXhDLGFBQWEsYUFBYTtDQUMzQjtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQWEsU0FBUztJQUVsQiw2Q0FBNkM7SUFDdEMsTUFBTSxFQUFFLE1BQU07SUFDckIsbURBQW1EO0lBQzVDLE1BQU0sRUFBRSxRQUFRO0lBQ3ZCLCtFQUErRTtJQUN4RSxlQUFlLEVBQUUsaUJBQWlCLEdBQUcsU0FBUztJQUNyRCxnREFBZ0Q7SUFDekMsS0FBSyxFQUFFLE1BQU0sR0FBRyxTQUFTO0lBQ2hDLG9EQUFvRDtJQUM3QyxjQUFjLENBQUM7SUFDdEIsd0RBQXdEO0lBQ2pELFNBQVMsQ0FBQztJQUNqQiw4REFBOEQ7SUFDdkQsV0FBVyxDQUFDO0lBQ25CLDhEQUE4RDtJQUN2RCxXQUFXLENBQUM7SUFDbkI7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQztJQXRCbkI7SUFDRSw2Q0FBNkM7SUFDdEMsTUFBTSxFQUFFLE1BQU07SUFDckIsbURBQW1EO0lBQzVDLE1BQU0sRUFBRSxRQUFRO0lBQ3ZCLCtFQUErRTtJQUN4RSxlQUFlLEVBQUUsaUJBQWlCLEdBQUcsU0FBUztJQUNyRCxnREFBZ0Q7SUFDekMsS0FBSyxFQUFFLE1BQU0sR0FBRyxTQUFTO0lBQ2hDLG9EQUFvRDtJQUM3QyxjQUFjLENBQUMsb0JBQVE7SUFDOUIsd0RBQXdEO0lBQ2pELFNBQVMsQ0FBQyx1QkFBVztJQUM1Qiw4REFBOEQ7SUFDdkQsV0FBVyxDQUFDLHlCQUFhO0lBQ2hDLDhEQUE4RDtJQUN2RCxXQUFXLENBQUMseUJBQWE7SUFDaEM7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyx3QkFBWSxFQUMzQjtJQUVKLGlFQUFpRTtJQUNqRSxxQkFBcUIsSUFBSSxPQUFPLENBRS9CO0lBRUQsMERBQTBEO0lBQzFELG9CQUFvQixJQUFJLE9BQU8sQ0FFOUI7SUFFRCxtSEFBbUg7SUFDbkgsT0FBTyxJQUFJLE9BQU8sQ0FPakI7SUFFRCxrREFBa0Q7SUFDbEQsU0FBUyxJQUFJLE9BQU8sQ0FFbkI7SUFFRCxtREFBbUQ7SUFDbkQsU0FBUyxJQUFJLE9BQU8sQ0FFbkI7SUFFRCxNQUFNLENBQUMsS0FBSyxjQUVYO0lBRUQsTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBY3JDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDbEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUNmLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDakIsZUFBZSxDQUFDLEVBQUUsaUJBQWlCLENBQUM7UUFDcEMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ2YsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3hCLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztRQUN0QixXQUFXLENBQUMsRUFBRSxXQUFXLENBQUM7UUFDMUIsV0FBVyxDQUFDLEVBQUUsV0FBVyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO0tBQ3hCLGFBWUE7SUFFRCxPQUFjLDZCQUE2QixDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsaUJBQWlCLENBRXJGO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_receipt.d.ts","sourceRoot":"","sources":["../../src/tx/tx_receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AAIjH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,2CAA2C;AAC3C,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,EAAE,QAAQ,EAOtC,CAAC;AAEF,yDAAyD;AACzD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"tx_receipt.d.ts","sourceRoot":"","sources":["../../src/tx/tx_receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AAIjH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,2CAA2C;AAC3C,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,EAAE,QAAQ,EAOtC,CAAC;AAEF,yDAAyD;AACzD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,wCAAwC;IAExC,kBAAkB,aAAa;IAC/B,wCAAwC;IAExC,iBAAiB,aAAa;IAC9B,wCAAwC;IAExC,aAAa,aAAa;CAC3B;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IAElB,6CAA6C;IACtC,MAAM,EAAE,MAAM;IACrB,mDAAmD;IAC5C,MAAM,EAAE,QAAQ;IACvB,+EAA+E;IACxE,eAAe,EAAE,iBAAiB,GAAG,SAAS;IACrD,gDAAgD;IACzC,KAAK,EAAE,MAAM,GAAG,SAAS;IAChC,oDAAoD;IAC7C,cAAc,CAAC;IACtB,wDAAwD;IACjD,SAAS,CAAC;IACjB,8DAA8D;IACvD,WAAW,CAAC;IACnB,8DAA8D;IACvD,WAAW,CAAC;IACnB;;;;OAIG;IACI,SAAS,CAAC;IAtBnB;IACE,6CAA6C;IACtC,MAAM,EAAE,MAAM;IACrB,mDAAmD;IAC5C,MAAM,EAAE,QAAQ;IACvB,+EAA+E;IACxE,eAAe,EAAE,iBAAiB,GAAG,SAAS;IACrD,gDAAgD;IACzC,KAAK,EAAE,MAAM,GAAG,SAAS;IAChC,oDAAoD;IAC7C,cAAc,CAAC,oBAAQ;IAC9B,wDAAwD;IACjD,SAAS,CAAC,uBAAW;IAC5B,8DAA8D;IACvD,WAAW,CAAC,yBAAa;IAChC,8DAA8D;IACvD,WAAW,CAAC,yBAAa;IAChC;;;;OAIG;IACI,SAAS,CAAC,wBAAY,EAC3B;IAEJ,iEAAiE;IACjE,qBAAqB,IAAI,OAAO,CAE/B;IAED,0DAA0D;IAC1D,oBAAoB,IAAI,OAAO,CAE9B;IAED,mHAAmH;IACnH,OAAO,IAAI,OAAO,CAOjB;IAED,kDAAkD;IAClD,SAAS,IAAI,OAAO,CAEnB;IAED,mDAAmD;IACnD,SAAS,IAAI,OAAO,CAEnB;IAED,MAAM,CAAC,KAAK,cAEX;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAcrC;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,QAAQ,CAAC;QACjB,eAAe,CAAC,EAAE,iBAAiB,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;KACxB,aAYA;IAED,OAAc,6BAA6B,CAAC,UAAU,EAAE,UAAU,GAAG,iBAAiB,CAErF;CACF"}
|
package/dest/tx/tx_receipt.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { BlockNumberSchema, EpochNumberSchema } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { RevertCode } from '../avm/revert_code.js';
|
|
4
3
|
import { BlockHash } from '../block/block_hash.js';
|
|
5
4
|
import { DebugLog } from '../logs/debug_log.js';
|
|
6
5
|
import { schemas } from '../schemas/schemas.js';
|
|
@@ -24,9 +23,13 @@ import { TxHash } from './tx_hash.js';
|
|
|
24
23
|
];
|
|
25
24
|
/** Execution result - only set when tx is in a block. */ export var TxExecutionResult = /*#__PURE__*/ function(TxExecutionResult) {
|
|
26
25
|
TxExecutionResult["SUCCESS"] = "success";
|
|
27
|
-
TxExecutionResult["
|
|
28
|
-
|
|
29
|
-
TxExecutionResult["
|
|
26
|
+
TxExecutionResult["REVERTED"] = "reverted";
|
|
27
|
+
/** @deprecated Use REVERTED instead. */ // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
|
|
28
|
+
TxExecutionResult["APP_LOGIC_REVERTED"] = "reverted";
|
|
29
|
+
/** @deprecated Use REVERTED instead. */ // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
|
|
30
|
+
TxExecutionResult["TEARDOWN_REVERTED"] = "reverted";
|
|
31
|
+
/** @deprecated Use REVERTED instead. */ // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
|
|
32
|
+
TxExecutionResult["BOTH_REVERTED"] = "reverted";
|
|
30
33
|
return TxExecutionResult;
|
|
31
34
|
}({});
|
|
32
35
|
/**
|
|
@@ -94,16 +97,6 @@ import { TxHash } from './tx_hash.js';
|
|
|
94
97
|
return new TxReceipt(fields.txHash, fields.status, fields.executionResult, fields.error, fields.transactionFee, fields.blockHash, fields.blockNumber, fields.epochNumber, fields.debugLogs);
|
|
95
98
|
}
|
|
96
99
|
static executionResultFromRevertCode(revertCode) {
|
|
97
|
-
|
|
98
|
-
return "success";
|
|
99
|
-
} else if (revertCode.equals(RevertCode.APP_LOGIC_REVERTED)) {
|
|
100
|
-
return "app_logic_reverted";
|
|
101
|
-
} else if (revertCode.equals(RevertCode.TEARDOWN_REVERTED)) {
|
|
102
|
-
return "teardown_reverted";
|
|
103
|
-
} else if (revertCode.equals(RevertCode.BOTH_REVERTED)) {
|
|
104
|
-
return "both_reverted";
|
|
105
|
-
} else {
|
|
106
|
-
throw new Error(`Unknown revert code: ${revertCode.getCode()}`);
|
|
107
|
-
}
|
|
100
|
+
return revertCode.isOK() ? "success" : "reverted";
|
|
108
101
|
}
|
|
109
102
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "5.0.0-nightly.
|
|
3
|
+
"version": "5.0.0-nightly.20260407",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -92,13 +92,13 @@
|
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
94
|
"@aws-sdk/client-s3": "^3.892.0",
|
|
95
|
-
"@aztec/bb.js": "5.0.0-nightly.
|
|
96
|
-
"@aztec/blob-lib": "5.0.0-nightly.
|
|
97
|
-
"@aztec/constants": "5.0.0-nightly.
|
|
98
|
-
"@aztec/ethereum": "5.0.0-nightly.
|
|
99
|
-
"@aztec/foundation": "5.0.0-nightly.
|
|
100
|
-
"@aztec/l1-artifacts": "5.0.0-nightly.
|
|
101
|
-
"@aztec/noir-noirc_abi": "5.0.0-nightly.
|
|
95
|
+
"@aztec/bb.js": "5.0.0-nightly.20260407",
|
|
96
|
+
"@aztec/blob-lib": "5.0.0-nightly.20260407",
|
|
97
|
+
"@aztec/constants": "5.0.0-nightly.20260407",
|
|
98
|
+
"@aztec/ethereum": "5.0.0-nightly.20260407",
|
|
99
|
+
"@aztec/foundation": "5.0.0-nightly.20260407",
|
|
100
|
+
"@aztec/l1-artifacts": "5.0.0-nightly.20260407",
|
|
101
|
+
"@aztec/noir-noirc_abi": "5.0.0-nightly.20260407",
|
|
102
102
|
"@google-cloud/storage": "^7.15.0",
|
|
103
103
|
"axios": "^1.13.5",
|
|
104
104
|
"json-stringify-deterministic": "1.0.12",
|
package/src/avm/revert_code.ts
CHANGED
|
@@ -5,35 +5,17 @@ import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
|
5
5
|
import { inspect } from 'util';
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* Tracks which revertible phases of a transaction's public execution reverted.
|
|
10
|
-
*
|
|
11
|
-
* A transaction executes in three sequential phases:
|
|
12
|
-
* 1. SETUP – non-revertible; if this fails the entire transaction is rejected.
|
|
13
|
-
* 2. APP_LOGIC – revertible; its state changes are rolled back on failure.
|
|
14
|
-
* 3. TEARDOWN – revertible; always runs (even after app-logic revert) so the fee-payment contract can clean up.
|
|
15
|
-
*
|
|
16
|
-
* Only APP_LOGIC and TEARDOWN can produce a revert code. SETUP failures throw instead and discard the transaction
|
|
17
|
-
* entirely.
|
|
18
|
-
*/
|
|
8
|
+
/** Whether a transaction's public execution reverted. */
|
|
19
9
|
export enum RevertCodeEnum {
|
|
20
10
|
/** All phases completed successfully; no state was rolled back. */
|
|
21
11
|
OK = 0,
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
/** TEARDOWN reverted; its state changes were discarded. APP_LOGIC succeeded. */
|
|
25
|
-
TEARDOWN_REVERTED = 2,
|
|
26
|
-
/** Both APP_LOGIC and TEARDOWN reverted; only SETUP effects are kept. */
|
|
27
|
-
BOTH_REVERTED = 3,
|
|
12
|
+
/** One or more revertible phases reverted; their state changes were discarded. */
|
|
13
|
+
REVERTED = 1,
|
|
28
14
|
}
|
|
29
15
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
(value as RevertCodeEnum) === RevertCodeEnum.APP_LOGIC_REVERTED ||
|
|
34
|
-
(value as RevertCodeEnum) === RevertCodeEnum.TEARDOWN_REVERTED ||
|
|
35
|
-
(value as RevertCodeEnum) === RevertCodeEnum.BOTH_REVERTED
|
|
36
|
-
);
|
|
16
|
+
/** Returns a valid RevertCodeEnum, coercing any value >= 1 to REVERTED. */
|
|
17
|
+
function toRevertCodeEnum(value: number): RevertCodeEnum {
|
|
18
|
+
return value >= 1 ? RevertCodeEnum.REVERTED : RevertCodeEnum.OK;
|
|
37
19
|
}
|
|
38
20
|
|
|
39
21
|
/**
|
|
@@ -45,9 +27,13 @@ export class RevertCode {
|
|
|
45
27
|
this.code = e.valueOf();
|
|
46
28
|
}
|
|
47
29
|
static readonly OK: RevertCode = new RevertCode(RevertCodeEnum.OK);
|
|
48
|
-
static readonly
|
|
49
|
-
|
|
50
|
-
static readonly
|
|
30
|
+
static readonly REVERTED: RevertCode = new RevertCode(RevertCodeEnum.REVERTED);
|
|
31
|
+
/** @deprecated Use REVERTED instead. */
|
|
32
|
+
static readonly APP_LOGIC_REVERTED: RevertCode = RevertCode.REVERTED;
|
|
33
|
+
/** @deprecated Use REVERTED instead. */
|
|
34
|
+
static readonly TEARDOWN_REVERTED: RevertCode = RevertCode.REVERTED;
|
|
35
|
+
/** @deprecated Use REVERTED instead. */
|
|
36
|
+
static readonly BOTH_REVERTED: RevertCode = RevertCode.REVERTED;
|
|
51
37
|
|
|
52
38
|
public getCode(): RevertCodeEnum {
|
|
53
39
|
return this.code;
|
|
@@ -65,12 +51,8 @@ export class RevertCode {
|
|
|
65
51
|
switch (this.code as RevertCodeEnum) {
|
|
66
52
|
case RevertCodeEnum.OK:
|
|
67
53
|
return 'OK';
|
|
68
|
-
case RevertCodeEnum.
|
|
69
|
-
return '
|
|
70
|
-
case RevertCodeEnum.TEARDOWN_REVERTED:
|
|
71
|
-
return 'Teardown reverted';
|
|
72
|
-
case RevertCodeEnum.BOTH_REVERTED:
|
|
73
|
-
return 'Both reverted';
|
|
54
|
+
case RevertCodeEnum.REVERTED:
|
|
55
|
+
return 'Reverted';
|
|
74
56
|
default:
|
|
75
57
|
return `Unknown RevertCode: ${this.code}`;
|
|
76
58
|
}
|
|
@@ -81,7 +63,11 @@ export class RevertCode {
|
|
|
81
63
|
}
|
|
82
64
|
|
|
83
65
|
static get schema(): ZodFor<RevertCode> {
|
|
84
|
-
return z
|
|
66
|
+
return z
|
|
67
|
+
.number()
|
|
68
|
+
.int()
|
|
69
|
+
.min(0)
|
|
70
|
+
.transform(value => new RevertCode(toRevertCodeEnum(value)));
|
|
85
71
|
}
|
|
86
72
|
|
|
87
73
|
/**
|
|
@@ -96,10 +82,10 @@ export class RevertCode {
|
|
|
96
82
|
return obj;
|
|
97
83
|
}
|
|
98
84
|
const code = typeof obj === 'number' ? obj : (obj.code ?? obj);
|
|
99
|
-
if (
|
|
85
|
+
if (typeof code !== 'number' || code < 0) {
|
|
100
86
|
throw new Error(`Invalid RevertCode: ${code}`);
|
|
101
87
|
}
|
|
102
|
-
return new RevertCode(code);
|
|
88
|
+
return new RevertCode(toRevertCodeEnum(code));
|
|
103
89
|
}
|
|
104
90
|
|
|
105
91
|
/**
|
|
@@ -131,10 +117,10 @@ export class RevertCode {
|
|
|
131
117
|
}
|
|
132
118
|
|
|
133
119
|
public static fromNumber(code: number): RevertCode {
|
|
134
|
-
if (
|
|
120
|
+
if (code < 0) {
|
|
135
121
|
throw new Error(`Invalid RevertCode: ${code}`);
|
|
136
122
|
}
|
|
137
|
-
return new RevertCode(code);
|
|
123
|
+
return new RevertCode(toRevertCodeEnum(code));
|
|
138
124
|
}
|
|
139
125
|
|
|
140
126
|
public static fromField(field: Fr): RevertCode {
|
|
@@ -152,7 +138,7 @@ export class RevertCode {
|
|
|
152
138
|
return RevertCode.fromNumber(code);
|
|
153
139
|
}
|
|
154
140
|
|
|
155
|
-
private static readonly NUM_OPTIONS =
|
|
141
|
+
private static readonly NUM_OPTIONS = 2;
|
|
156
142
|
static random(): RevertCode {
|
|
157
143
|
return new RevertCode(Math.floor(Math.random() * RevertCode.NUM_OPTIONS));
|
|
158
144
|
}
|
package/src/tx/tx_receipt.ts
CHANGED
|
@@ -31,9 +31,16 @@ export const SortedTxStatuses: TxStatus[] = [
|
|
|
31
31
|
/** Execution result - only set when tx is in a block. */
|
|
32
32
|
export enum TxExecutionResult {
|
|
33
33
|
SUCCESS = 'success',
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
REVERTED = 'reverted',
|
|
35
|
+
/** @deprecated Use REVERTED instead. */
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
|
|
37
|
+
APP_LOGIC_REVERTED = 'reverted',
|
|
38
|
+
/** @deprecated Use REVERTED instead. */
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
|
|
40
|
+
TEARDOWN_REVERTED = 'reverted',
|
|
41
|
+
/** @deprecated Use REVERTED instead. */
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
|
|
43
|
+
BOTH_REVERTED = 'reverted',
|
|
37
44
|
}
|
|
38
45
|
|
|
39
46
|
/**
|
|
@@ -143,16 +150,6 @@ export class TxReceipt {
|
|
|
143
150
|
}
|
|
144
151
|
|
|
145
152
|
public static executionResultFromRevertCode(revertCode: RevertCode): TxExecutionResult {
|
|
146
|
-
|
|
147
|
-
return TxExecutionResult.SUCCESS;
|
|
148
|
-
} else if (revertCode.equals(RevertCode.APP_LOGIC_REVERTED)) {
|
|
149
|
-
return TxExecutionResult.APP_LOGIC_REVERTED;
|
|
150
|
-
} else if (revertCode.equals(RevertCode.TEARDOWN_REVERTED)) {
|
|
151
|
-
return TxExecutionResult.TEARDOWN_REVERTED;
|
|
152
|
-
} else if (revertCode.equals(RevertCode.BOTH_REVERTED)) {
|
|
153
|
-
return TxExecutionResult.BOTH_REVERTED;
|
|
154
|
-
} else {
|
|
155
|
-
throw new Error(`Unknown revert code: ${revertCode.getCode()}`);
|
|
156
|
-
}
|
|
153
|
+
return revertCode.isOK() ? TxExecutionResult.SUCCESS : TxExecutionResult.REVERTED;
|
|
157
154
|
}
|
|
158
155
|
}
|