@aztec/stdlib 0.77.0 → 0.77.1
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/kernel/private_kernel_tail_circuit_public_inputs.d.ts +2 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -1
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +4 -9
- package/dest/logs/private_log.d.ts +2 -0
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +9 -0
- package/dest/logs/public_log.d.ts +2 -0
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +10 -0
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +2 -3
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +26 -10
- package/package.json +6 -6
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -1
- package/src/logs/contract_class_log.ts +4 -9
- package/src/logs/private_log.ts +11 -0
- package/src/logs/public_log.ts +12 -0
- package/src/tx/tx.ts +3 -4
- package/src/tx/tx_effect.ts +29 -9
|
@@ -100,7 +100,8 @@ export declare class PrivateKernelTailCircuitPublicInputs {
|
|
|
100
100
|
getNonEmptyNullifiers(): Fr[];
|
|
101
101
|
getNonEmptyPrivateLogs(): import("../logs/private_log.js").PrivateLog[];
|
|
102
102
|
getNonEmptyContractClassLogsHashes(): import("./log_hash.js").ScopedLogHash[];
|
|
103
|
-
|
|
103
|
+
getEmittedContractClassLogsLength(): number;
|
|
104
|
+
getEmittedPrivateLogsLength(): number;
|
|
104
105
|
static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelTailCircuitPublicInputs;
|
|
105
106
|
toBuffer(): Buffer;
|
|
106
107
|
static empty(): PrivateKernelTailCircuitPublicInputs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_kernel_tail_circuit_public_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_tail_circuit_public_inputs.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,wCAAwC,EAAE,MAAM,qDAAqD,CAAC;AAC/G,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,wCAAwC,EAAE,MAAM,qDAAqD,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,qBAAa,uCAAuC;IAEhD;;OAEG;IACI,4BAA4B,EAAE,8BAA8B;IACnE;;OAEG;IACI,yBAAyB,EAAE,8BAA8B;IAChE;;OAEG;IACI,yBAAyB,EAAE,iBAAiB;;IAXnD;;OAEG;IACI,4BAA4B,EAAE,8BAA8B;IACnE;;OAEG;IACI,yBAAyB,EAAE,8BAA8B;IAChE;;OAEG;IACI,yBAAyB,EAAE,iBAAiB;IAGrD,OAAO;IAQP,IAAI,UAAU,YAEb;IAED,IAAI,aAAa,YAEhB;IAED,IAAI,aAAa,YAEhB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,uCAAuC;IASzF,QAAQ;IAQR,MAAM,CAAC,KAAK;CAOb;AAED,qBAAa,uCAAuC;IAC/B,GAAG,EAAE,8BAA8B;gBAAnC,GAAG,EAAE,8BAA8B;IAEtD,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,uCAAuC;IAKzF,OAAO;IAIP,QAAQ;IAIR,MAAM,CAAC,KAAK;CAGb;AAED,qBAAa,oCAAoC;IAE7C;;OAEG;IACI,SAAS,EAAE,cAAc;IACzB,wBAAwB,EAAE,wBAAwB;IACzD;;;OAGG;IACI,OAAO,EAAE,GAAG;IACnB;;OAEG;IACI,QAAQ,EAAE,YAAY;IAEtB,SAAS,CAAC;IACV,SAAS,CAAC;;IAhBjB;;OAEG;IACI,SAAS,EAAE,cAAc,EACzB,wBAAwB,EAAE,wBAAwB;IACzD;;;OAGG;IACI,OAAO,EAAE,GAAG;IACnB;;OAEG;IACI,QAAQ,EAAE,YAAY,EAEtB,SAAS,CAAC,qDAAyC,EACnD,SAAS,CAAC,qDAAyC;IAY5D,MAAM,KAAK,MAAM,6EAEhB;IAED,MAAM;IAIN,OAAO;IAUP,0CAA0C;IAe1C,0CAA0C;IAmB1C,0BAA0B;IAQ1B,uCAAuC;IAIvC,oCAAoC;IAIpC,4BAA4B;IAI5B,kCAAkC;IAMlC,+BAA+B;IAI/B,4BAA4B;IAK5B,qBAAqB;IAUrB,qBAAqB;IAUrB,sBAAsB;IAUtB,kCAAkC;IAUlC,
|
|
1
|
+
{"version":3,"file":"private_kernel_tail_circuit_public_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_tail_circuit_public_inputs.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,wCAAwC,EAAE,MAAM,qDAAqD,CAAC;AAC/G,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,wCAAwC,EAAE,MAAM,qDAAqD,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,qBAAa,uCAAuC;IAEhD;;OAEG;IACI,4BAA4B,EAAE,8BAA8B;IACnE;;OAEG;IACI,yBAAyB,EAAE,8BAA8B;IAChE;;OAEG;IACI,yBAAyB,EAAE,iBAAiB;;IAXnD;;OAEG;IACI,4BAA4B,EAAE,8BAA8B;IACnE;;OAEG;IACI,yBAAyB,EAAE,8BAA8B;IAChE;;OAEG;IACI,yBAAyB,EAAE,iBAAiB;IAGrD,OAAO;IAQP,IAAI,UAAU,YAEb;IAED,IAAI,aAAa,YAEhB;IAED,IAAI,aAAa,YAEhB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,uCAAuC;IASzF,QAAQ;IAQR,MAAM,CAAC,KAAK;CAOb;AAED,qBAAa,uCAAuC;IAC/B,GAAG,EAAE,8BAA8B;gBAAnC,GAAG,EAAE,8BAA8B;IAEtD,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,uCAAuC;IAKzF,OAAO;IAIP,QAAQ;IAIR,MAAM,CAAC,KAAK;CAGb;AAED,qBAAa,oCAAoC;IAE7C;;OAEG;IACI,SAAS,EAAE,cAAc;IACzB,wBAAwB,EAAE,wBAAwB;IACzD;;;OAGG;IACI,OAAO,EAAE,GAAG;IACnB;;OAEG;IACI,QAAQ,EAAE,YAAY;IAEtB,SAAS,CAAC;IACV,SAAS,CAAC;;IAhBjB;;OAEG;IACI,SAAS,EAAE,cAAc,EACzB,wBAAwB,EAAE,wBAAwB;IACzD;;;OAGG;IACI,OAAO,EAAE,GAAG;IACnB;;OAEG;IACI,QAAQ,EAAE,YAAY,EAEtB,SAAS,CAAC,qDAAyC,EACnD,SAAS,CAAC,qDAAyC;IAY5D,MAAM,KAAK,MAAM,6EAEhB;IAED,MAAM;IAIN,OAAO;IAUP,0CAA0C;IAe1C,0CAA0C;IAmB1C,0BAA0B;IAQ1B,uCAAuC;IAIvC,oCAAoC;IAIpC,4BAA4B;IAI5B,kCAAkC;IAMlC,+BAA+B;IAI/B,4BAA4B;IAK5B,qBAAqB;IAUrB,qBAAqB;IAUrB,sBAAsB;IAUtB,kCAAkC;IAUlC,iCAAiC;IAIjC,2BAA2B;IAI3B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,oCAAoC;IAatF,QAAQ;IAYR,MAAM,CAAC,KAAK;IAWZ;;;;OAIG;IACH,MAAM,CAAC,kBAAkB;CAY1B"}
|
|
@@ -156,9 +156,12 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
156
156
|
const contractClassLogsHashes = this.forPublic ? mergeAccumulatedData(this.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes, this.forPublic.revertibleAccumulatedData.contractClassLogsHashes) : this.forRollup.end.contractClassLogsHashes;
|
|
157
157
|
return contractClassLogsHashes.filter((h)=>!h.isEmpty());
|
|
158
158
|
}
|
|
159
|
-
|
|
159
|
+
getEmittedContractClassLogsLength() {
|
|
160
160
|
return this.getNonEmptyContractClassLogsHashes().reduce((total, log)=>total + log.logHash.length, 0);
|
|
161
161
|
}
|
|
162
|
+
getEmittedPrivateLogsLength() {
|
|
163
|
+
return this.getNonEmptyPrivateLogs().reduce((total, log)=>total + log.getEmittedLength(), 0);
|
|
164
|
+
}
|
|
162
165
|
static fromBuffer(buffer) {
|
|
163
166
|
const reader = BufferReader.asReader(buffer);
|
|
164
167
|
const isForPublic = reader.readBoolean();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_class_log.d.ts","sourceRoot":"","sources":["../../src/logs/contract_class_log.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,gBAAgB;IAOR,eAAe,EAAE,YAAY;IAAS,MAAM,EAAE,EAAE,EAAE;IANrE,MAAM,CAAC,aAAa,SAAwD;IAErE,kBAAkB,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;gBAIxB,eAAe,EAAE,YAAY,EAAS,MAAM,EAAE,EAAE,EAAE;IAQrE,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAU5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAW/C,KAAK;WAIQ,MAAM;IAWnB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"contract_class_log.d.ts","sourceRoot":"","sources":["../../src/logs/contract_class_log.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,gBAAgB;IAOR,eAAe,EAAE,YAAY;IAAS,MAAM,EAAE,EAAE,EAAE;IANrE,MAAM,CAAC,aAAa,SAAwD;IAErE,kBAAkB,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;gBAIxB,eAAe,EAAE,YAAY,EAAS,MAAM,EAAE,EAAE,EAAE;IAQrE,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAU5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAW/C,KAAK;WAIQ,MAAM;IAWnB,gBAAgB;IAOhB,gBAAgB;IAKhB,qBAAqB,CAAC,KAAK,EAAE,EAAE;IAI/B,UAAU;IAQJ,IAAI;IAUJ,IAAI;IAIV,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAK3B"}
|
|
@@ -73,18 +73,13 @@ export class ContractClassLog {
|
|
|
73
73
|
}
|
|
74
74
|
getEmittedLength() {
|
|
75
75
|
// This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
|
|
76
|
-
// Does not include address
|
|
76
|
+
// Does not include address or length prefix.
|
|
77
|
+
// Note: Unlike public logs, address is not included here because it is not included in the log itself.
|
|
77
78
|
return this.getEmittedFields().length;
|
|
78
79
|
}
|
|
79
80
|
getEmittedFields() {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (!this.fields[i].isZero() && lastZeroIndex == 0) {
|
|
83
|
-
lastZeroIndex = i + 1;
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return this.fields.slice(0, lastZeroIndex);
|
|
81
|
+
const lastNonZeroIndex = this.fields.findLastIndex((f)=>!f.isZero());
|
|
82
|
+
return this.fields.slice(0, lastNonZeroIndex + 1);
|
|
88
83
|
}
|
|
89
84
|
setUnsiloedFirstField(field) {
|
|
90
85
|
this.unsiloedFirstField = field;
|
|
@@ -17,6 +17,8 @@ export declare class PrivateLog {
|
|
|
17
17
|
toBuffer(): Buffer;
|
|
18
18
|
static fromBuffer(buffer: Buffer | BufferReader): PrivateLog;
|
|
19
19
|
static random(): PrivateLog;
|
|
20
|
+
getEmittedLength(): number;
|
|
21
|
+
getEmittedFields(): Fr[];
|
|
20
22
|
static get schema(): z.ZodEffects<z.ZodObject<{
|
|
21
23
|
fields: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
|
|
22
24
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_log.d.ts","sourceRoot":"","sources":["../../src/logs/private_log.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAEvG,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,UAAU;IAGF,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC;IAFvE,MAAM,CAAC,aAAa,SAAiD;gBAElD,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC;IAEvE,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,MAAM,CAAC,MAAM;IAIb,MAAM,KAAK,MAAM;;;;;;;;OAMhB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAK3B"}
|
|
1
|
+
{"version":3,"file":"private_log.d.ts","sourceRoot":"","sources":["../../src/logs/private_log.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAEvG,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,UAAU;IAGF,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC;IAFvE,MAAM,CAAC,aAAa,SAAiD;gBAElD,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,0BAA0B,CAAC;IAEvE,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,MAAM,CAAC,MAAM;IAIb,gBAAgB;IAMhB,gBAAgB;IAKhB,MAAM,KAAK,MAAM;;;;;;;;OAMhB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAK3B"}
|
package/dest/logs/private_log.js
CHANGED
|
@@ -34,6 +34,15 @@ export class PrivateLog {
|
|
|
34
34
|
static random() {
|
|
35
35
|
return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.random));
|
|
36
36
|
}
|
|
37
|
+
getEmittedLength() {
|
|
38
|
+
// This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
|
|
39
|
+
// Does not include length prefix.
|
|
40
|
+
return this.getEmittedFields().length;
|
|
41
|
+
}
|
|
42
|
+
getEmittedFields() {
|
|
43
|
+
const lastNonZeroIndex = this.fields.findLastIndex((f)=>!f.isZero());
|
|
44
|
+
return this.fields.slice(0, lastNonZeroIndex + 1);
|
|
45
|
+
}
|
|
37
46
|
static get schema() {
|
|
38
47
|
return z.object({
|
|
39
48
|
fields: z.array(schemas.Fr)
|
|
@@ -21,6 +21,8 @@ export declare class PublicLog {
|
|
|
21
21
|
toBuffer(): Buffer;
|
|
22
22
|
static fromBuffer(buffer: Buffer | BufferReader): PublicLog;
|
|
23
23
|
static random(): Promise<PublicLog>;
|
|
24
|
+
getEmittedLength(): number;
|
|
25
|
+
getEmittedFields(): Fr[];
|
|
24
26
|
equals(other: this): boolean;
|
|
25
27
|
toHumanReadable(): string;
|
|
26
28
|
static get schema(): ZodFor<PublicLog>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_log.d.ts","sourceRoot":"","sources":["../../src/logs/public_log.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,8BAA8B,EAA6B,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,KAAK,KAAK,EAGX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,SAAS;IAGD,eAAe,EAAE,YAAY;IAAS,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,8BAA8B,CAAC;IAF9G,MAAM,CAAC,aAAa,SAAgD;gBAEjD,eAAe,EAAE,YAAY,EAAS,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,8BAA8B,CAAC;IAE9G,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC;IAI5C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;WAKlC,MAAM;IAInB,MAAM,CAAC,KAAK,EAAE,IAAI;IAOlB,eAAe,IAAI,MAAM;IAIzB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAOrC;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAM3B"}
|
|
1
|
+
{"version":3,"file":"public_log.d.ts","sourceRoot":"","sources":["../../src/logs/public_log.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,8BAA8B,EAA6B,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,KAAK,KAAK,EAGX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,SAAS;IAGD,eAAe,EAAE,YAAY;IAAS,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,8BAA8B,CAAC;IAF9G,MAAM,CAAC,aAAa,SAAgD;gBAEjD,eAAe,EAAE,YAAY,EAAS,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,8BAA8B,CAAC;IAE9G,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC;IAI5C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;WAKlC,MAAM;IAInB,gBAAgB;IAMhB,gBAAgB;IAMhB,MAAM,CAAC,KAAK,EAAE,IAAI;IAOlB,eAAe,IAAI,MAAM;IAIzB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAOrC;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAM3B"}
|
package/dest/logs/public_log.js
CHANGED
|
@@ -43,6 +43,16 @@ export class PublicLog {
|
|
|
43
43
|
static async random() {
|
|
44
44
|
return new PublicLog(await AztecAddress.random(), makeTuple(PUBLIC_LOG_DATA_SIZE_IN_FIELDS, Fr.random));
|
|
45
45
|
}
|
|
46
|
+
getEmittedLength() {
|
|
47
|
+
// This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
|
|
48
|
+
// Does not include length prefix.
|
|
49
|
+
return this.getEmittedFields().length;
|
|
50
|
+
}
|
|
51
|
+
getEmittedFields() {
|
|
52
|
+
const fields = this.toFields();
|
|
53
|
+
const lastNonZeroIndex = fields.findLastIndex((f)=>!f.isZero());
|
|
54
|
+
return fields.slice(0, lastNonZeroIndex + 1);
|
|
55
|
+
}
|
|
46
56
|
equals(other) {
|
|
47
57
|
return this.contractAddress.equals(other.contractAddress) && this.log.reduce((acc, field, i)=>acc && field.equals(other.log[i]), true);
|
|
48
58
|
}
|
package/dest/tx/tx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAyD,MAAM,6BAA6B,CAAC;AAClH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oCAAoC,EAAE,MAAM,wDAAwD,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/tx.js
CHANGED
|
@@ -5,7 +5,6 @@ import { BufferReader, serializeArrayOfBufferableToVector, serializeToBuffer } f
|
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
|
|
7
7
|
import { ContractClassLog } from '../logs/contract_class_log.js';
|
|
8
|
-
import { PrivateLog } from '../logs/private_log.js';
|
|
9
8
|
import { Gossipable } from '../p2p/gossipable.js';
|
|
10
9
|
import { TopicType, createTopicString } from '../p2p/topic_type.js';
|
|
11
10
|
import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
|
|
@@ -166,7 +165,7 @@ import { TxHash } from './tx_hash.js';
|
|
|
166
165
|
nullifierCount: this.data.getNonEmptyNullifiers().length,
|
|
167
166
|
privateLogCount: this.data.getNonEmptyPrivateLogs().length,
|
|
168
167
|
classRegisteredCount: this.data.getNonEmptyContractClassLogsHashes().length,
|
|
169
|
-
contractClassLogSize: this.data.
|
|
168
|
+
contractClassLogSize: this.data.getEmittedContractClassLogsLength(),
|
|
170
169
|
proofSize: this.clientIvcProof.clientIvcProofBuffer.length,
|
|
171
170
|
size: this.toBuffer().length,
|
|
172
171
|
feePaymentMethod: // needsSetup? then we pay through a fee payment contract
|
|
@@ -182,7 +181,7 @@ import { TxHash } from './tx_hash.js';
|
|
|
182
181
|
* Estimates the tx size based on its private effects. Note that the actual size of the tx
|
|
183
182
|
* after processing will probably be larger, as public execution would generate more data.
|
|
184
183
|
*/ getEstimatedPrivateTxEffectsSize() {
|
|
185
|
-
return this.data.getNonEmptyNoteHashes().length * Fr.SIZE_IN_BYTES + this.data.getNonEmptyNullifiers().length * Fr.SIZE_IN_BYTES + this.data.
|
|
184
|
+
return this.data.getNonEmptyNoteHashes().length * Fr.SIZE_IN_BYTES + this.data.getNonEmptyNullifiers().length * Fr.SIZE_IN_BYTES + this.data.getEmittedPrivateLogsLength() * Fr.SIZE_IN_BYTES + this.data.getEmittedContractClassLogsLength() * Fr.SIZE_IN_BYTES;
|
|
186
185
|
}
|
|
187
186
|
/**
|
|
188
187
|
* Convenience function to get a hash out of a tx or a tx-like.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":";;;AAoBA,OAAO,EAAE,KAAK,QAAQ,EAA6B,MAAM,yBAAyB,CAAC;AAInF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EAGZ,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD,eAAO,MAAM,4BAA4B,QAA0C,CAAC;AAEpF,eAAO,MAAM,4BAA4B,QAAmC,CAAC;AAE7E,qBAAa,QAAQ;IAEjB;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;;IAxC5C;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;IAoD9C,QAAQ,IAAI,MAAM;IAelB,yEAAyE;IACzE,SAAS;IAIT;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ;IAiB1D;;;;OAIG;IACH,SAAS;WAuBI,MAAM,CAAC,mBAAmB,SAAI,EAAE,oBAAoB,SAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAezF,MAAM,CAAC,KAAK,IAAI,QAAQ;IAIxB,OAAO,IAAI,OAAO;IAIlB,2DAA2D;IAC3D,QAAQ;IAIR;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;;;;IAK5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE;;;;IAQjC;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE;IAuB7B;;OAEG;IACH,YAAY,IAAI,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/tx_effect.js
CHANGED
|
@@ -270,15 +270,26 @@ export class TxEffect {
|
|
|
270
270
|
]).flat());
|
|
271
271
|
}
|
|
272
272
|
if (this.privateLogs.length) {
|
|
273
|
-
|
|
274
|
-
|
|
273
|
+
const totalLogLen = this.privateLogs.reduce(// +1 for length prefix
|
|
274
|
+
(total, log)=>total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1), 0);
|
|
275
|
+
flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, totalLogLen));
|
|
276
|
+
flattened.push(...this.privateLogs.flatMap((l)=>[
|
|
277
|
+
new Fr(l.getEmittedLength()),
|
|
278
|
+
...l.getEmittedFields()
|
|
279
|
+
]));
|
|
275
280
|
}
|
|
276
281
|
if (this.publicLogs.length) {
|
|
277
|
-
|
|
278
|
-
|
|
282
|
+
const totalLogLen = this.publicLogs.reduce(// +1 for length prefix
|
|
283
|
+
(total, log)=>total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1), 0);
|
|
284
|
+
flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, totalLogLen));
|
|
285
|
+
flattened.push(...this.publicLogs.flatMap((l)=>[
|
|
286
|
+
new Fr(l.getEmittedLength()),
|
|
287
|
+
...l.getEmittedFields()
|
|
288
|
+
]));
|
|
279
289
|
}
|
|
280
290
|
if (this.contractClassLogs.length) {
|
|
281
|
-
const totalLogLen = this.contractClassLogs.reduce(
|
|
291
|
+
const totalLogLen = this.contractClassLogs.reduce(// +2 for length prefix and contract address
|
|
292
|
+
(total, log)=>total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 2), 0);
|
|
282
293
|
flattened.push(this.toPrefix(CONTRACT_CLASS_LOGS_PREFIX, totalLogLen));
|
|
283
294
|
flattened.push(...this.contractClassLogs.flatMap((l)=>[
|
|
284
295
|
new Fr(l.getEmittedLength()),
|
|
@@ -347,11 +358,13 @@ export class TxEffect {
|
|
|
347
358
|
}
|
|
348
359
|
case PRIVATE_LOGS_PREFIX:
|
|
349
360
|
{
|
|
350
|
-
// TODO(Miranda): squash log 0s in a nested loop and add len prefix?
|
|
351
361
|
ensureEmpty(effect.privateLogs);
|
|
352
362
|
const flatPrivateLogs = reader.readFieldArray(length);
|
|
353
|
-
|
|
354
|
-
|
|
363
|
+
let i = 0;
|
|
364
|
+
while(i < length){
|
|
365
|
+
const logLen = flatPrivateLogs[i++].toNumber();
|
|
366
|
+
const logFields = flatPrivateLogs.slice(i, i += logLen);
|
|
367
|
+
effect.privateLogs.push(PrivateLog.fromFields(logFields.concat(new Array(PRIVATE_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))));
|
|
355
368
|
}
|
|
356
369
|
break;
|
|
357
370
|
}
|
|
@@ -359,8 +372,11 @@ export class TxEffect {
|
|
|
359
372
|
{
|
|
360
373
|
ensureEmpty(effect.publicLogs);
|
|
361
374
|
const flatPublicLogs = reader.readFieldArray(length);
|
|
362
|
-
|
|
363
|
-
|
|
375
|
+
let i = 0;
|
|
376
|
+
while(i < length){
|
|
377
|
+
const logLen = flatPublicLogs[i++].toNumber();
|
|
378
|
+
const logFields = flatPublicLogs.slice(i, i += logLen);
|
|
379
|
+
effect.publicLogs.push(PublicLog.fromFields(logFields.concat(new Array(PUBLIC_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))));
|
|
364
380
|
}
|
|
365
381
|
break;
|
|
366
382
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "0.77.
|
|
3
|
+
"version": "0.77.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -66,11 +66,11 @@
|
|
|
66
66
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@aztec/bb.js": "0.77.
|
|
70
|
-
"@aztec/blob-lib": "0.77.
|
|
71
|
-
"@aztec/constants": "0.77.
|
|
72
|
-
"@aztec/ethereum": "0.77.
|
|
73
|
-
"@aztec/foundation": "0.77.
|
|
69
|
+
"@aztec/bb.js": "0.77.1",
|
|
70
|
+
"@aztec/blob-lib": "0.77.1",
|
|
71
|
+
"@aztec/constants": "0.77.1",
|
|
72
|
+
"@aztec/ethereum": "0.77.1",
|
|
73
|
+
"@aztec/foundation": "0.77.1",
|
|
74
74
|
"lodash.chunk": "^4.2.0",
|
|
75
75
|
"lodash.isequal": "^4.5.0",
|
|
76
76
|
"lodash.omit": "^4.5.0",
|
|
@@ -253,10 +253,14 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
253
253
|
return contractClassLogsHashes.filter(h => !h.isEmpty());
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
|
|
256
|
+
getEmittedContractClassLogsLength() {
|
|
257
257
|
return this.getNonEmptyContractClassLogsHashes().reduce((total, log) => total + log.logHash.length, 0);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
+
getEmittedPrivateLogsLength() {
|
|
261
|
+
return this.getNonEmptyPrivateLogs().reduce((total, log) => total + log.getEmittedLength(), 0);
|
|
262
|
+
}
|
|
263
|
+
|
|
260
264
|
static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelTailCircuitPublicInputs {
|
|
261
265
|
const reader = BufferReader.asReader(buffer);
|
|
262
266
|
const isForPublic = reader.readBoolean();
|
|
@@ -78,19 +78,14 @@ export class ContractClassLog {
|
|
|
78
78
|
|
|
79
79
|
getEmittedLength() {
|
|
80
80
|
// This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
|
|
81
|
-
// Does not include address
|
|
81
|
+
// Does not include address or length prefix.
|
|
82
|
+
// Note: Unlike public logs, address is not included here because it is not included in the log itself.
|
|
82
83
|
return this.getEmittedFields().length;
|
|
83
84
|
}
|
|
84
85
|
|
|
85
86
|
getEmittedFields() {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (!this.fields[i].isZero() && lastZeroIndex == 0) {
|
|
89
|
-
lastZeroIndex = i + 1;
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return this.fields.slice(0, lastZeroIndex);
|
|
87
|
+
const lastNonZeroIndex = this.fields.findLastIndex(f => !f.isZero());
|
|
88
|
+
return this.fields.slice(0, lastNonZeroIndex + 1);
|
|
94
89
|
}
|
|
95
90
|
|
|
96
91
|
setUnsiloedFirstField(field: Fr) {
|
package/src/logs/private_log.ts
CHANGED
|
@@ -42,6 +42,17 @@ export class PrivateLog {
|
|
|
42
42
|
return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.random));
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
getEmittedLength() {
|
|
46
|
+
// This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
|
|
47
|
+
// Does not include length prefix.
|
|
48
|
+
return this.getEmittedFields().length;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
getEmittedFields() {
|
|
52
|
+
const lastNonZeroIndex = this.fields.findLastIndex(f => !f.isZero());
|
|
53
|
+
return this.fields.slice(0, lastNonZeroIndex + 1);
|
|
54
|
+
}
|
|
55
|
+
|
|
45
56
|
static get schema() {
|
|
46
57
|
return z
|
|
47
58
|
.object({
|
package/src/logs/public_log.ts
CHANGED
|
@@ -54,6 +54,18 @@ export class PublicLog {
|
|
|
54
54
|
return new PublicLog(await AztecAddress.random(), makeTuple(PUBLIC_LOG_DATA_SIZE_IN_FIELDS, Fr.random));
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
getEmittedLength() {
|
|
58
|
+
// This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
|
|
59
|
+
// Does not include length prefix.
|
|
60
|
+
return this.getEmittedFields().length;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
getEmittedFields() {
|
|
64
|
+
const fields = this.toFields();
|
|
65
|
+
const lastNonZeroIndex = fields.findLastIndex(f => !f.isZero());
|
|
66
|
+
return fields.slice(0, lastNonZeroIndex + 1);
|
|
67
|
+
}
|
|
68
|
+
|
|
57
69
|
equals(other: this) {
|
|
58
70
|
return (
|
|
59
71
|
this.contractAddress.equals(other.contractAddress) &&
|
package/src/tx/tx.ts
CHANGED
|
@@ -13,7 +13,6 @@ import type { L2LogsSource } from '../interfaces/l2_logs_source.js';
|
|
|
13
13
|
import type { ScopedLogHash } from '../kernel/log_hash.js';
|
|
14
14
|
import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
|
|
15
15
|
import { ContractClassLog } from '../logs/contract_class_log.js';
|
|
16
|
-
import { PrivateLog } from '../logs/private_log.js';
|
|
17
16
|
import { Gossipable } from '../p2p/gossipable.js';
|
|
18
17
|
import { TopicType, createTopicString } from '../p2p/topic_type.js';
|
|
19
18
|
import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
|
|
@@ -239,7 +238,7 @@ export class Tx extends Gossipable {
|
|
|
239
238
|
nullifierCount: this.data.getNonEmptyNullifiers().length,
|
|
240
239
|
privateLogCount: this.data.getNonEmptyPrivateLogs().length,
|
|
241
240
|
classRegisteredCount: this.data.getNonEmptyContractClassLogsHashes().length,
|
|
242
|
-
contractClassLogSize: this.data.
|
|
241
|
+
contractClassLogSize: this.data.getEmittedContractClassLogsLength(),
|
|
243
242
|
|
|
244
243
|
proofSize: this.clientIvcProof.clientIvcProofBuffer.length,
|
|
245
244
|
size: this.toBuffer().length,
|
|
@@ -273,8 +272,8 @@ export class Tx extends Gossipable {
|
|
|
273
272
|
return (
|
|
274
273
|
this.data.getNonEmptyNoteHashes().length * Fr.SIZE_IN_BYTES +
|
|
275
274
|
this.data.getNonEmptyNullifiers().length * Fr.SIZE_IN_BYTES +
|
|
276
|
-
this.data.
|
|
277
|
-
this.data.
|
|
275
|
+
this.data.getEmittedPrivateLogsLength() * Fr.SIZE_IN_BYTES +
|
|
276
|
+
this.data.getEmittedContractClassLogsLength() * Fr.SIZE_IN_BYTES
|
|
278
277
|
);
|
|
279
278
|
}
|
|
280
279
|
|
package/src/tx/tx_effect.ts
CHANGED
|
@@ -354,15 +354,26 @@ export class TxEffect {
|
|
|
354
354
|
flattened.push(...this.publicDataWrites.map(w => [w.leafSlot, w.value]).flat());
|
|
355
355
|
}
|
|
356
356
|
if (this.privateLogs.length) {
|
|
357
|
-
|
|
358
|
-
|
|
357
|
+
const totalLogLen = this.privateLogs.reduce(
|
|
358
|
+
// +1 for length prefix
|
|
359
|
+
(total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1),
|
|
360
|
+
0,
|
|
361
|
+
);
|
|
362
|
+
flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, totalLogLen));
|
|
363
|
+
flattened.push(...this.privateLogs.flatMap(l => [new Fr(l.getEmittedLength()), ...l.getEmittedFields()]));
|
|
359
364
|
}
|
|
360
365
|
if (this.publicLogs.length) {
|
|
361
|
-
|
|
362
|
-
|
|
366
|
+
const totalLogLen = this.publicLogs.reduce(
|
|
367
|
+
// +1 for length prefix
|
|
368
|
+
(total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1),
|
|
369
|
+
0,
|
|
370
|
+
);
|
|
371
|
+
flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, totalLogLen));
|
|
372
|
+
flattened.push(...this.publicLogs.flatMap(l => [new Fr(l.getEmittedLength()), ...l.getEmittedFields()]));
|
|
363
373
|
}
|
|
364
374
|
if (this.contractClassLogs.length) {
|
|
365
375
|
const totalLogLen = this.contractClassLogs.reduce(
|
|
376
|
+
// +2 for length prefix and contract address
|
|
366
377
|
(total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 2),
|
|
367
378
|
0,
|
|
368
379
|
);
|
|
@@ -435,19 +446,28 @@ export class TxEffect {
|
|
|
435
446
|
break;
|
|
436
447
|
}
|
|
437
448
|
case PRIVATE_LOGS_PREFIX: {
|
|
438
|
-
// TODO(Miranda): squash log 0s in a nested loop and add len prefix?
|
|
439
449
|
ensureEmpty(effect.privateLogs);
|
|
440
450
|
const flatPrivateLogs = reader.readFieldArray(length);
|
|
441
|
-
|
|
442
|
-
|
|
451
|
+
let i = 0;
|
|
452
|
+
while (i < length) {
|
|
453
|
+
const logLen = flatPrivateLogs[i++].toNumber();
|
|
454
|
+
const logFields = flatPrivateLogs.slice(i, (i += logLen));
|
|
455
|
+
effect.privateLogs.push(
|
|
456
|
+
PrivateLog.fromFields(logFields.concat(new Array(PRIVATE_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))),
|
|
457
|
+
);
|
|
443
458
|
}
|
|
444
459
|
break;
|
|
445
460
|
}
|
|
446
461
|
case PUBLIC_LOGS_PREFIX: {
|
|
447
462
|
ensureEmpty(effect.publicLogs);
|
|
448
463
|
const flatPublicLogs = reader.readFieldArray(length);
|
|
449
|
-
|
|
450
|
-
|
|
464
|
+
let i = 0;
|
|
465
|
+
while (i < length) {
|
|
466
|
+
const logLen = flatPublicLogs[i++].toNumber();
|
|
467
|
+
const logFields = flatPublicLogs.slice(i, (i += logLen));
|
|
468
|
+
effect.publicLogs.push(
|
|
469
|
+
PublicLog.fromFields(logFields.concat(new Array(PUBLIC_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))),
|
|
470
|
+
);
|
|
451
471
|
}
|
|
452
472
|
break;
|
|
453
473
|
}
|