@aztec/stdlib 1.0.0-nightly.20250716 → 1.0.0-nightly.20250717
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/delayed_public_mutable/delayed_public_mutable_values.d.ts +20 -0
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -0
- package/dest/{shared_mutable/shared_mutable_values.js → delayed_public_mutable/delayed_public_mutable_values.js} +9 -9
- package/dest/{shared_mutable/shared_mutable_values_with_hash.d.ts → delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts} +6 -6
- package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts.map +1 -0
- package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.js +30 -0
- package/dest/delayed_public_mutable/index.d.ts +5 -0
- package/dest/delayed_public_mutable/index.d.ts.map +1 -0
- package/dest/delayed_public_mutable/index.js +4 -0
- package/dest/delayed_public_mutable/scheduled_delay_change.d.ts.map +1 -0
- package/dest/delayed_public_mutable/scheduled_value_change.d.ts.map +1 -0
- package/dest/kernel/private_call_data.d.ts +4 -4
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.js +2 -2
- package/package.json +8 -8
- package/src/{shared_mutable/shared_mutable_values.ts → delayed_public_mutable/delayed_public_mutable_values.ts} +10 -10
- package/src/delayed_public_mutable/delayed_public_mutable_values_with_hash.ts +38 -0
- package/src/delayed_public_mutable/index.ts +4 -0
- package/src/kernel/private_call_data.ts +3 -3
- package/dest/shared_mutable/index.d.ts +0 -5
- package/dest/shared_mutable/index.d.ts.map +0 -1
- package/dest/shared_mutable/index.js +0 -4
- package/dest/shared_mutable/scheduled_delay_change.d.ts.map +0 -1
- package/dest/shared_mutable/scheduled_value_change.d.ts.map +0 -1
- package/dest/shared_mutable/shared_mutable_values.d.ts +0 -20
- package/dest/shared_mutable/shared_mutable_values.d.ts.map +0 -1
- package/dest/shared_mutable/shared_mutable_values_with_hash.d.ts.map +0 -1
- package/dest/shared_mutable/shared_mutable_values_with_hash.js +0 -30
- package/src/shared_mutable/index.ts +0 -4
- package/src/shared_mutable/shared_mutable_values_with_hash.ts +0 -38
- /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.d.ts +0 -0
- /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.js +0 -0
- /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_value_change.d.ts +0 -0
- /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_value_change.js +0 -0
- /package/src/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.ts +0 -0
- /package/src/{shared_mutable → delayed_public_mutable}/scheduled_value_change.ts +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
3
|
+
import { ScheduledDelayChange } from './scheduled_delay_change.js';
|
|
4
|
+
import { ScheduledValueChange } from './scheduled_value_change.js';
|
|
5
|
+
export declare const DELAYED_PUBLIC_MUTABLE_VALUES_LEN: number;
|
|
6
|
+
export declare class DelayedPublicMutableValues {
|
|
7
|
+
svc: ScheduledValueChange;
|
|
8
|
+
sdc: ScheduledDelayChange;
|
|
9
|
+
constructor(svc: ScheduledValueChange, sdc: ScheduledDelayChange);
|
|
10
|
+
static fromFields(fields: Fr[] | FieldReader): DelayedPublicMutableValues;
|
|
11
|
+
toFields(): Fr[];
|
|
12
|
+
toBuffer(): Buffer;
|
|
13
|
+
static fromBuffer(buffer: Buffer | BufferReader, valueSize: number): DelayedPublicMutableValues;
|
|
14
|
+
static empty(valueSize: number): DelayedPublicMutableValues;
|
|
15
|
+
static readFromTree(delayedPublicMutableSlot: Fr, readStorage: (storageSlot: Fr) => Promise<Fr>): Promise<DelayedPublicMutableValues>;
|
|
16
|
+
isEmpty(): boolean;
|
|
17
|
+
writeToTree(delayedPublicMutableSlot: Fr, storageWrite: (storageSlot: Fr, value: Fr) => Promise<void>): Promise<void>;
|
|
18
|
+
hash(): Promise<Fr>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=delayed_public_mutable_values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayed_public_mutable_values.d.ts","sourceRoot":"","sources":["../../src/delayed_public_mutable/delayed_public_mutable_values.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,eAAO,MAAM,iCAAiC,QAA6B,CAAC;AAE5E,qBAAa,0BAA0B;IAE5B,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;gBADzB,GAAG,EAAE,oBAAoB,EACzB,GAAG,EAAE,oBAAoB;IAGlC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IA2B5C,QAAQ,IAAI,EAAE,EAAE;IAahB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,0BAA0B;IAK/F,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM;WAIjB,YAAY,CAAC,wBAAwB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;IAQrG,OAAO,IAAI,OAAO;IAIZ,WAAW,CAAC,wBAAwB,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;IAQrG,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;CAK1B"}
|
|
@@ -4,8 +4,8 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
4
4
|
import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
5
|
import { ScheduledDelayChange } from './scheduled_delay_change.js';
|
|
6
6
|
import { ScheduledValueChange } from './scheduled_value_change.js';
|
|
7
|
-
export const
|
|
8
|
-
export class
|
|
7
|
+
export const DELAYED_PUBLIC_MUTABLE_VALUES_LEN = 2 * UPDATES_VALUE_SIZE + 1;
|
|
8
|
+
export class DelayedPublicMutableValues {
|
|
9
9
|
svc;
|
|
10
10
|
sdc;
|
|
11
11
|
constructor(svc, sdc){
|
|
@@ -49,25 +49,25 @@ export class SharedMutableValues {
|
|
|
49
49
|
}
|
|
50
50
|
static fromBuffer(buffer, valueSize) {
|
|
51
51
|
const reader = BufferReader.asReader(buffer);
|
|
52
|
-
return
|
|
52
|
+
return DelayedPublicMutableValues.fromFields(reader.readArray(2 * valueSize + 1, Fr));
|
|
53
53
|
}
|
|
54
54
|
static empty(valueSize) {
|
|
55
55
|
return new this(ScheduledValueChange.empty(valueSize), ScheduledDelayChange.empty());
|
|
56
56
|
}
|
|
57
|
-
static async readFromTree(
|
|
57
|
+
static async readFromTree(delayedPublicMutableSlot, readStorage) {
|
|
58
58
|
const fields = [];
|
|
59
|
-
for(let i = 0; i <
|
|
60
|
-
fields.push(await readStorage(
|
|
59
|
+
for(let i = 0; i < DELAYED_PUBLIC_MUTABLE_VALUES_LEN; i++){
|
|
60
|
+
fields.push(await readStorage(delayedPublicMutableSlot.add(new Fr(i))));
|
|
61
61
|
}
|
|
62
|
-
return
|
|
62
|
+
return DelayedPublicMutableValues.fromFields(fields);
|
|
63
63
|
}
|
|
64
64
|
isEmpty() {
|
|
65
65
|
return this.svc.isEmpty() && this.sdc.isEmpty();
|
|
66
66
|
}
|
|
67
|
-
async writeToTree(
|
|
67
|
+
async writeToTree(delayedPublicMutableSlot, storageWrite) {
|
|
68
68
|
const fields = this.toFields();
|
|
69
69
|
for(let i = 0; i < fields.length; i++){
|
|
70
|
-
await storageWrite(
|
|
70
|
+
await storageWrite(delayedPublicMutableSlot.add(new Fr(i)), fields[i]);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
async hash() {
|
|
@@ -2,14 +2,14 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
2
2
|
import type { AztecAddress } from '../aztec-address/index.js';
|
|
3
3
|
import { ScheduledDelayChange } from './scheduled_delay_change.js';
|
|
4
4
|
import { ScheduledValueChange } from './scheduled_value_change.js';
|
|
5
|
-
export declare class
|
|
6
|
-
private
|
|
5
|
+
export declare class DelayedPublicMutableValuesWithHash {
|
|
6
|
+
private dpmv;
|
|
7
7
|
constructor(svc: ScheduledValueChange, sdc: ScheduledDelayChange);
|
|
8
8
|
toFields(): Promise<Fr[]>;
|
|
9
|
-
writeToTree(
|
|
9
|
+
writeToTree(delayedPublicMutableSlot: Fr, storageWrite: (storageSlot: Fr, value: Fr) => Promise<void>): Promise<void>;
|
|
10
10
|
static getContractUpdateSlots(contractAddress: AztecAddress): Promise<{
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
delayedPublicMutableSlot: Fr;
|
|
12
|
+
delayedPublicMutableHashSlot: Fr;
|
|
13
13
|
}>;
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=delayed_public_mutable_values_with_hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayed_public_mutable_values_with_hash.d.ts","sourceRoot":"","sources":["../../src/delayed_public_mutable/delayed_public_mutable_values_with_hash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,IAAI,CAA6B;gBAE7B,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,oBAAoB;IAI1D,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAIzB,WAAW,CAAC,wBAAwB,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;WAQ9F,sBAAsB,CAAC,eAAe,EAAE,YAAY;;;;CASlE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { UPDATED_CLASS_IDS_SLOT } from '@aztec/constants';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import { deriveStorageSlotInMap } from '../hash/map_slot.js';
|
|
4
|
+
import { DELAYED_PUBLIC_MUTABLE_VALUES_LEN, DelayedPublicMutableValues } from './delayed_public_mutable_values.js';
|
|
5
|
+
export class DelayedPublicMutableValuesWithHash {
|
|
6
|
+
dpmv;
|
|
7
|
+
constructor(svc, sdc){
|
|
8
|
+
this.dpmv = new DelayedPublicMutableValues(svc, sdc);
|
|
9
|
+
}
|
|
10
|
+
async toFields() {
|
|
11
|
+
return [
|
|
12
|
+
...this.dpmv.toFields(),
|
|
13
|
+
await this.dpmv.hash()
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
async writeToTree(delayedPublicMutableSlot, storageWrite) {
|
|
17
|
+
const fields = await this.toFields();
|
|
18
|
+
for(let i = 0; i < fields.length; i++){
|
|
19
|
+
await storageWrite(delayedPublicMutableSlot.add(new Fr(i)), fields[i]);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
static async getContractUpdateSlots(contractAddress) {
|
|
23
|
+
const delayedPublicMutableSlot = await deriveStorageSlotInMap(new Fr(UPDATED_CLASS_IDS_SLOT), contractAddress);
|
|
24
|
+
const delayedPublicMutableHashSlot = delayedPublicMutableSlot.add(new Fr(DELAYED_PUBLIC_MUTABLE_VALUES_LEN));
|
|
25
|
+
return {
|
|
26
|
+
delayedPublicMutableSlot,
|
|
27
|
+
delayedPublicMutableHashSlot
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delayed_public_mutable/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8CAA8C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled_delay_change.d.ts","sourceRoot":"","sources":["../../src/delayed_public_mutable/scheduled_delay_change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,oBAAoB;IAEtB,GAAG,EAAE,MAAM,GAAG,SAAS;IACvB,IAAI,EAAE,MAAM,GAAG,SAAS;IACxB,iBAAiB,EAAE,MAAM;gBAFzB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,MAAM;IAGlC,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;CAGnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled_value_change.d.ts","sourceRoot":"","sources":["../../src/delayed_public_mutable/scheduled_value_change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,oBAAoB;IAEtB,QAAQ,EAAE,EAAE,EAAE;IACd,IAAI,EAAE,EAAE,EAAE;IACV,iBAAiB,EAAE,MAAM;gBAFzB,QAAQ,EAAE,EAAE,EAAE,EACd,IAAI,EAAE,EAAE,EAAE,EACV,iBAAiB,EAAE,MAAM;IAOlC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM;IAI9B,OAAO,IAAI,OAAO;IAIlB,YAAY,CAAC,SAAS,EAAE,MAAM;CAO/B"}
|
|
@@ -3,8 +3,8 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
3
3
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
4
4
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
5
5
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
6
|
+
import { DelayedPublicMutableValues } from '../delayed_public_mutable/delayed_public_mutable_values.js';
|
|
6
7
|
import { PublicKeys } from '../keys/public_keys.js';
|
|
7
|
-
import { SharedMutableValues } from '../shared_mutable/shared_mutable_values.js';
|
|
8
8
|
import { ProtocolContractLeafPreimage, PublicDataTreeLeafPreimage } from '../trees/index.js';
|
|
9
9
|
import { VerificationKeyAsFields } from '../vks/verification_key.js';
|
|
10
10
|
import { PrivateCircuitPublicInputs } from './private_circuit_public_inputs.js';
|
|
@@ -141,9 +141,9 @@ export declare class PrivateVerificationKeyHints {
|
|
|
141
141
|
export declare class UpdatedClassIdHints {
|
|
142
142
|
updatedClassIdWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>;
|
|
143
143
|
updatedClassIdLeaf: PublicDataTreeLeafPreimage;
|
|
144
|
-
updatedClassIdValues:
|
|
145
|
-
constructor(updatedClassIdWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>, updatedClassIdLeaf: PublicDataTreeLeafPreimage, updatedClassIdValues:
|
|
146
|
-
static getFields(fields: FieldsOf<UpdatedClassIdHints>): readonly [MembershipWitness<40>, PublicDataTreeLeafPreimage,
|
|
144
|
+
updatedClassIdValues: DelayedPublicMutableValues;
|
|
145
|
+
constructor(updatedClassIdWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>, updatedClassIdLeaf: PublicDataTreeLeafPreimage, updatedClassIdValues: DelayedPublicMutableValues);
|
|
146
|
+
static getFields(fields: FieldsOf<UpdatedClassIdHints>): readonly [MembershipWitness<40>, PublicDataTreeLeafPreimage, DelayedPublicMutableValues];
|
|
147
147
|
static from(fields: FieldsOf<UpdatedClassIdHints>): UpdatedClassIdHints;
|
|
148
148
|
/**
|
|
149
149
|
* Serialize this as a buffer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_call_data.d.ts","sourceRoot":"","sources":["../../src/kernel/private_call_data.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,uBAAuB,EAExB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"private_call_data.d.ts","sourceRoot":"","sources":["../../src/kernel/private_call_data.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { FUNCTION_TREE_HEIGHT, PROTOCOL_CONTRACT_TREE_HEIGHT, PUBLIC_DATA_TREE_H
|
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
4
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
5
|
+
import { DelayedPublicMutableValues } from '../delayed_public_mutable/delayed_public_mutable_values.js';
|
|
5
6
|
import { PublicKeys } from '../keys/public_keys.js';
|
|
6
|
-
import { SharedMutableValues } from '../shared_mutable/shared_mutable_values.js';
|
|
7
7
|
import { ProtocolContractLeafPreimage, PublicDataTreeLeafPreimage } from '../trees/index.js';
|
|
8
8
|
import { VerificationKeyAsFields } from '../vks/verification_key.js';
|
|
9
9
|
import { PrivateCircuitPublicInputs } from './private_circuit_public_inputs.js';
|
|
@@ -155,7 +155,7 @@ export class UpdatedClassIdHints {
|
|
|
155
155
|
const reader = BufferReader.asReader(buffer);
|
|
156
156
|
return new UpdatedClassIdHints(reader.readObject(MembershipWitness.deserializer(PUBLIC_DATA_TREE_HEIGHT)), reader.readObject(PublicDataTreeLeafPreimage), reader.readObject({
|
|
157
157
|
fromBuffer (reader) {
|
|
158
|
-
return
|
|
158
|
+
return DelayedPublicMutableValues.fromBuffer(reader, UPDATES_VALUE_SIZE);
|
|
159
159
|
}
|
|
160
160
|
}));
|
|
161
161
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "1.0.0-nightly.
|
|
3
|
+
"version": "1.0.0-nightly.20250717",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"./avm": "./dest/avm/index.js",
|
|
25
25
|
"./schemas": "./dest/schemas/index.js",
|
|
26
26
|
"./noir": "./dest/noir/index.js",
|
|
27
|
-
"./
|
|
27
|
+
"./delayed-public-mutable": "./dest/delayed_public_mutable/index.js",
|
|
28
28
|
"./parity": "./dest/parity/index.js",
|
|
29
29
|
"./vks": "./dest/vks/index.js",
|
|
30
30
|
"./proofs": "./dest/proofs/index.js",
|
|
@@ -67,12 +67,12 @@
|
|
|
67
67
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/bb.js": "1.0.0-nightly.
|
|
71
|
-
"@aztec/blob-lib": "1.0.0-nightly.
|
|
72
|
-
"@aztec/constants": "1.0.0-nightly.
|
|
73
|
-
"@aztec/ethereum": "1.0.0-nightly.
|
|
74
|
-
"@aztec/foundation": "1.0.0-nightly.
|
|
75
|
-
"@aztec/noir-noirc_abi": "1.0.0-nightly.
|
|
70
|
+
"@aztec/bb.js": "1.0.0-nightly.20250717",
|
|
71
|
+
"@aztec/blob-lib": "1.0.0-nightly.20250717",
|
|
72
|
+
"@aztec/constants": "1.0.0-nightly.20250717",
|
|
73
|
+
"@aztec/ethereum": "1.0.0-nightly.20250717",
|
|
74
|
+
"@aztec/foundation": "1.0.0-nightly.20250717",
|
|
75
|
+
"@aztec/noir-noirc_abi": "1.0.0-nightly.20250717",
|
|
76
76
|
"@google-cloud/storage": "^7.15.0",
|
|
77
77
|
"axios": "^1.9.0",
|
|
78
78
|
"json-stringify-deterministic": "1.0.12",
|
|
@@ -6,9 +6,9 @@ import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/
|
|
|
6
6
|
import { ScheduledDelayChange } from './scheduled_delay_change.js';
|
|
7
7
|
import { ScheduledValueChange } from './scheduled_value_change.js';
|
|
8
8
|
|
|
9
|
-
export const
|
|
9
|
+
export const DELAYED_PUBLIC_MUTABLE_VALUES_LEN = 2 * UPDATES_VALUE_SIZE + 1;
|
|
10
10
|
|
|
11
|
-
export class
|
|
11
|
+
export class DelayedPublicMutableValues {
|
|
12
12
|
constructor(
|
|
13
13
|
public svc: ScheduledValueChange,
|
|
14
14
|
public sdc: ScheduledDelayChange,
|
|
@@ -58,32 +58,32 @@ export class SharedMutableValues {
|
|
|
58
58
|
return serializeToBuffer(this.toFields());
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
static fromBuffer(buffer: Buffer | BufferReader, valueSize: number):
|
|
61
|
+
static fromBuffer(buffer: Buffer | BufferReader, valueSize: number): DelayedPublicMutableValues {
|
|
62
62
|
const reader = BufferReader.asReader(buffer);
|
|
63
|
-
return
|
|
63
|
+
return DelayedPublicMutableValues.fromFields(reader.readArray(2 * valueSize + 1, Fr));
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
static empty(valueSize: number) {
|
|
67
67
|
return new this(ScheduledValueChange.empty(valueSize), ScheduledDelayChange.empty());
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
static async readFromTree(
|
|
70
|
+
static async readFromTree(delayedPublicMutableSlot: Fr, readStorage: (storageSlot: Fr) => Promise<Fr>) {
|
|
71
71
|
const fields = [];
|
|
72
|
-
for (let i = 0; i <
|
|
73
|
-
fields.push(await readStorage(
|
|
72
|
+
for (let i = 0; i < DELAYED_PUBLIC_MUTABLE_VALUES_LEN; i++) {
|
|
73
|
+
fields.push(await readStorage(delayedPublicMutableSlot.add(new Fr(i))));
|
|
74
74
|
}
|
|
75
|
-
return
|
|
75
|
+
return DelayedPublicMutableValues.fromFields(fields);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
isEmpty(): boolean {
|
|
79
79
|
return this.svc.isEmpty() && this.sdc.isEmpty();
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
async writeToTree(
|
|
82
|
+
async writeToTree(delayedPublicMutableSlot: Fr, storageWrite: (storageSlot: Fr, value: Fr) => Promise<void>) {
|
|
83
83
|
const fields = this.toFields();
|
|
84
84
|
|
|
85
85
|
for (let i = 0; i < fields.length; i++) {
|
|
86
|
-
await storageWrite(
|
|
86
|
+
await storageWrite(delayedPublicMutableSlot.add(new Fr(i)), fields[i]);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { UPDATED_CLASS_IDS_SLOT } from '@aztec/constants';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
|
|
4
|
+
import type { AztecAddress } from '../aztec-address/index.js';
|
|
5
|
+
import { deriveStorageSlotInMap } from '../hash/map_slot.js';
|
|
6
|
+
import { DELAYED_PUBLIC_MUTABLE_VALUES_LEN, DelayedPublicMutableValues } from './delayed_public_mutable_values.js';
|
|
7
|
+
import { ScheduledDelayChange } from './scheduled_delay_change.js';
|
|
8
|
+
import { ScheduledValueChange } from './scheduled_value_change.js';
|
|
9
|
+
|
|
10
|
+
export class DelayedPublicMutableValuesWithHash {
|
|
11
|
+
private dpmv: DelayedPublicMutableValues;
|
|
12
|
+
|
|
13
|
+
constructor(svc: ScheduledValueChange, sdc: ScheduledDelayChange) {
|
|
14
|
+
this.dpmv = new DelayedPublicMutableValues(svc, sdc);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async toFields(): Promise<Fr[]> {
|
|
18
|
+
return [...this.dpmv.toFields(), await this.dpmv.hash()];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async writeToTree(delayedPublicMutableSlot: Fr, storageWrite: (storageSlot: Fr, value: Fr) => Promise<void>) {
|
|
22
|
+
const fields = await this.toFields();
|
|
23
|
+
|
|
24
|
+
for (let i = 0; i < fields.length; i++) {
|
|
25
|
+
await storageWrite(delayedPublicMutableSlot.add(new Fr(i)), fields[i]);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static async getContractUpdateSlots(contractAddress: AztecAddress) {
|
|
30
|
+
const delayedPublicMutableSlot = await deriveStorageSlotInMap(new Fr(UPDATED_CLASS_IDS_SLOT), contractAddress);
|
|
31
|
+
const delayedPublicMutableHashSlot = delayedPublicMutableSlot.add(new Fr(DELAYED_PUBLIC_MUTABLE_VALUES_LEN));
|
|
32
|
+
|
|
33
|
+
return {
|
|
34
|
+
delayedPublicMutableSlot,
|
|
35
|
+
delayedPublicMutableHashSlot,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -9,8 +9,8 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
9
9
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
10
10
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
11
11
|
|
|
12
|
+
import { DelayedPublicMutableValues } from '../delayed_public_mutable/delayed_public_mutable_values.js';
|
|
12
13
|
import { PublicKeys } from '../keys/public_keys.js';
|
|
13
|
-
import { SharedMutableValues } from '../shared_mutable/shared_mutable_values.js';
|
|
14
14
|
import { ProtocolContractLeafPreimage, PublicDataTreeLeafPreimage } from '../trees/index.js';
|
|
15
15
|
import { VerificationKeyAsFields } from '../vks/verification_key.js';
|
|
16
16
|
import { PrivateCircuitPublicInputs } from './private_circuit_public_inputs.js';
|
|
@@ -162,7 +162,7 @@ export class UpdatedClassIdHints {
|
|
|
162
162
|
constructor(
|
|
163
163
|
public updatedClassIdWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>,
|
|
164
164
|
public updatedClassIdLeaf: PublicDataTreeLeafPreimage,
|
|
165
|
-
public updatedClassIdValues:
|
|
165
|
+
public updatedClassIdValues: DelayedPublicMutableValues,
|
|
166
166
|
) {}
|
|
167
167
|
|
|
168
168
|
static getFields(fields: FieldsOf<UpdatedClassIdHints>) {
|
|
@@ -193,7 +193,7 @@ export class UpdatedClassIdHints {
|
|
|
193
193
|
reader.readObject(PublicDataTreeLeafPreimage),
|
|
194
194
|
reader.readObject({
|
|
195
195
|
fromBuffer(reader) {
|
|
196
|
-
return
|
|
196
|
+
return DelayedPublicMutableValues.fromBuffer(reader, UPDATES_VALUE_SIZE);
|
|
197
197
|
},
|
|
198
198
|
}),
|
|
199
199
|
);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared_mutable/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled_delay_change.d.ts","sourceRoot":"","sources":["../../src/shared_mutable/scheduled_delay_change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,oBAAoB;IAEtB,GAAG,EAAE,MAAM,GAAG,SAAS;IACvB,IAAI,EAAE,MAAM,GAAG,SAAS;IACxB,iBAAiB,EAAE,MAAM;gBAFzB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,MAAM;IAGlC,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;CAGnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled_value_change.d.ts","sourceRoot":"","sources":["../../src/shared_mutable/scheduled_value_change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,oBAAoB;IAEtB,QAAQ,EAAE,EAAE,EAAE;IACd,IAAI,EAAE,EAAE,EAAE;IACV,iBAAiB,EAAE,MAAM;gBAFzB,QAAQ,EAAE,EAAE,EAAE,EACd,IAAI,EAAE,EAAE,EAAE,EACV,iBAAiB,EAAE,MAAM;IAOlC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM;IAI9B,OAAO,IAAI,OAAO;IAIlB,YAAY,CAAC,SAAS,EAAE,MAAM;CAO/B"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
3
|
-
import { ScheduledDelayChange } from './scheduled_delay_change.js';
|
|
4
|
-
import { ScheduledValueChange } from './scheduled_value_change.js';
|
|
5
|
-
export declare const SHARED_MUTABLE_VALUES_LEN: number;
|
|
6
|
-
export declare class SharedMutableValues {
|
|
7
|
-
svc: ScheduledValueChange;
|
|
8
|
-
sdc: ScheduledDelayChange;
|
|
9
|
-
constructor(svc: ScheduledValueChange, sdc: ScheduledDelayChange);
|
|
10
|
-
static fromFields(fields: Fr[] | FieldReader): SharedMutableValues;
|
|
11
|
-
toFields(): Fr[];
|
|
12
|
-
toBuffer(): Buffer;
|
|
13
|
-
static fromBuffer(buffer: Buffer | BufferReader, valueSize: number): SharedMutableValues;
|
|
14
|
-
static empty(valueSize: number): SharedMutableValues;
|
|
15
|
-
static readFromTree(sharedMutableSlot: Fr, readStorage: (storageSlot: Fr) => Promise<Fr>): Promise<SharedMutableValues>;
|
|
16
|
-
isEmpty(): boolean;
|
|
17
|
-
writeToTree(sharedMutableSlot: Fr, storageWrite: (storageSlot: Fr, value: Fr) => Promise<void>): Promise<void>;
|
|
18
|
-
hash(): Promise<Fr>;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=shared_mutable_values.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared_mutable_values.d.ts","sourceRoot":"","sources":["../../src/shared_mutable/shared_mutable_values.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,eAAO,MAAM,yBAAyB,QAA6B,CAAC;AAEpE,qBAAa,mBAAmB;IAErB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;gBADzB,GAAG,EAAE,oBAAoB,EACzB,GAAG,EAAE,oBAAoB;IAGlC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IA2B5C,QAAQ,IAAI,EAAE,EAAE;IAahB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,mBAAmB;IAKxF,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM;WAIjB,YAAY,CAAC,iBAAiB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;IAQ9F,OAAO,IAAI,OAAO;IAIZ,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;IAQ9F,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;CAK1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared_mutable_values_with_hash.d.ts","sourceRoot":"","sources":["../../src/shared_mutable/shared_mutable_values_with_hash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,qBAAa,2BAA2B;IACtC,OAAO,CAAC,GAAG,CAAsB;gBAErB,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,oBAAoB;IAI1D,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAIzB,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;WAQvF,sBAAsB,CAAC,eAAe,EAAE,YAAY;;;;CASlE"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { UPDATED_CLASS_IDS_SLOT } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import { deriveStorageSlotInMap } from '../hash/map_slot.js';
|
|
4
|
-
import { SHARED_MUTABLE_VALUES_LEN, SharedMutableValues } from './shared_mutable_values.js';
|
|
5
|
-
export class SharedMutableValuesWithHash {
|
|
6
|
-
smv;
|
|
7
|
-
constructor(svc, sdc){
|
|
8
|
-
this.smv = new SharedMutableValues(svc, sdc);
|
|
9
|
-
}
|
|
10
|
-
async toFields() {
|
|
11
|
-
return [
|
|
12
|
-
...this.smv.toFields(),
|
|
13
|
-
await this.smv.hash()
|
|
14
|
-
];
|
|
15
|
-
}
|
|
16
|
-
async writeToTree(sharedMutableSlot, storageWrite) {
|
|
17
|
-
const fields = await this.toFields();
|
|
18
|
-
for(let i = 0; i < fields.length; i++){
|
|
19
|
-
await storageWrite(sharedMutableSlot.add(new Fr(i)), fields[i]);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
static async getContractUpdateSlots(contractAddress) {
|
|
23
|
-
const sharedMutableSlot = await deriveStorageSlotInMap(new Fr(UPDATED_CLASS_IDS_SLOT), contractAddress);
|
|
24
|
-
const sharedMutableHashSlot = sharedMutableSlot.add(new Fr(SHARED_MUTABLE_VALUES_LEN));
|
|
25
|
-
return {
|
|
26
|
-
sharedMutableSlot,
|
|
27
|
-
sharedMutableHashSlot
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { UPDATED_CLASS_IDS_SLOT } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
|
|
4
|
-
import type { AztecAddress } from '../aztec-address/index.js';
|
|
5
|
-
import { deriveStorageSlotInMap } from '../hash/map_slot.js';
|
|
6
|
-
import { ScheduledDelayChange } from './scheduled_delay_change.js';
|
|
7
|
-
import { ScheduledValueChange } from './scheduled_value_change.js';
|
|
8
|
-
import { SHARED_MUTABLE_VALUES_LEN, SharedMutableValues } from './shared_mutable_values.js';
|
|
9
|
-
|
|
10
|
-
export class SharedMutableValuesWithHash {
|
|
11
|
-
private smv: SharedMutableValues;
|
|
12
|
-
|
|
13
|
-
constructor(svc: ScheduledValueChange, sdc: ScheduledDelayChange) {
|
|
14
|
-
this.smv = new SharedMutableValues(svc, sdc);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
async toFields(): Promise<Fr[]> {
|
|
18
|
-
return [...this.smv.toFields(), await this.smv.hash()];
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async writeToTree(sharedMutableSlot: Fr, storageWrite: (storageSlot: Fr, value: Fr) => Promise<void>) {
|
|
22
|
-
const fields = await this.toFields();
|
|
23
|
-
|
|
24
|
-
for (let i = 0; i < fields.length; i++) {
|
|
25
|
-
await storageWrite(sharedMutableSlot.add(new Fr(i)), fields[i]);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
static async getContractUpdateSlots(contractAddress: AztecAddress) {
|
|
30
|
-
const sharedMutableSlot = await deriveStorageSlotInMap(new Fr(UPDATED_CLASS_IDS_SLOT), contractAddress);
|
|
31
|
-
const sharedMutableHashSlot = sharedMutableSlot.add(new Fr(SHARED_MUTABLE_VALUES_LEN));
|
|
32
|
-
|
|
33
|
-
return {
|
|
34
|
-
sharedMutableSlot,
|
|
35
|
-
sharedMutableHashSlot,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|