@aztec/pxe 0.60.0 → 0.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/database/deferred_note_dao.d.ts +8 -21
- package/dest/database/deferred_note_dao.d.ts.map +1 -1
- package/dest/database/deferred_note_dao.js +9 -19
- package/dest/database/incoming_note_dao.d.ts +3 -3
- package/dest/database/incoming_note_dao.d.ts.map +1 -1
- package/dest/database/incoming_note_dao.js +6 -6
- package/dest/database/kv_pxe_database.d.ts +11 -6
- package/dest/database/kv_pxe_database.d.ts.map +1 -1
- package/dest/database/kv_pxe_database.js +75 -42
- package/dest/database/outgoing_note_dao.d.ts +1 -1
- package/dest/database/outgoing_note_dao.d.ts.map +1 -1
- package/dest/database/outgoing_note_dao.js +3 -3
- package/dest/database/pxe_database.d.ts +37 -5
- package/dest/database/pxe_database.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.js +11 -11
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/note_processor/note_processor.d.ts +1 -5
- package/dest/note_processor/note_processor.d.ts.map +1 -1
- package/dest/note_processor/note_processor.js +57 -58
- package/dest/note_processor/utils/add_public_values_to_payload.d.ts +10 -0
- package/dest/note_processor/utils/add_public_values_to_payload.d.ts.map +1 -0
- package/dest/note_processor/utils/add_public_values_to_payload.js +48 -0
- package/dest/note_processor/utils/brute_force_note_info.d.ts +8 -3
- package/dest/note_processor/utils/brute_force_note_info.d.ts.map +1 -1
- package/dest/note_processor/utils/brute_force_note_info.js +6 -3
- package/dest/note_processor/utils/produce_note_daos.d.ts +2 -2
- package/dest/note_processor/utils/produce_note_daos.d.ts.map +1 -1
- package/dest/note_processor/utils/produce_note_daos.js +8 -10
- package/dest/note_processor/utils/produce_note_daos_for_key.d.ts +3 -3
- package/dest/note_processor/utils/produce_note_daos_for_key.d.ts.map +1 -1
- package/dest/note_processor/utils/produce_note_daos_for_key.js +7 -61
- package/dest/pxe_http/pxe_http_server.d.ts.map +1 -1
- package/dest/pxe_http/pxe_http_server.js +23 -21
- package/dest/pxe_service/pxe_service.d.ts +15 -7
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +59 -42
- package/dest/pxe_service/test/pxe_test_suite.d.ts.map +1 -1
- package/dest/pxe_service/test/pxe_test_suite.js +2 -32
- package/dest/simulator_oracle/index.d.ts +41 -2
- package/dest/simulator_oracle/index.d.ts.map +1 -1
- package/dest/simulator_oracle/index.js +104 -2
- package/dest/synchronizer/synchronizer.d.ts +1 -1
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +8 -8
- package/package.json +16 -14
- package/src/database/deferred_note_dao.ts +7 -20
- package/src/database/incoming_note_dao.ts +6 -5
- package/src/database/kv_pxe_database.ts +91 -45
- package/src/database/outgoing_note_dao.ts +4 -3
- package/src/database/pxe_database.ts +42 -4
- package/src/database/pxe_database_test_suite.ts +12 -20
- package/src/index.ts +1 -1
- package/src/note_processor/note_processor.ts +91 -87
- package/src/note_processor/utils/add_public_values_to_payload.ts +63 -0
- package/src/note_processor/utils/brute_force_note_info.ts +11 -3
- package/src/note_processor/utils/produce_note_daos.ts +11 -13
- package/src/note_processor/utils/produce_note_daos_for_key.ts +19 -114
- package/src/pxe_http/pxe_http_server.ts +22 -19
- package/src/pxe_service/pxe_service.ts +71 -46
- package/src/pxe_service/test/pxe_test_suite.ts +1 -53
- package/src/simulator_oracle/index.ts +131 -1
- package/src/synchronizer/synchronizer.ts +7 -7
- package/dest/note_processor/utils/add_nullable_field_to_payload.d.ts +0 -12
- package/dest/note_processor/utils/add_nullable_field_to_payload.d.ts.map +0 -1
- package/dest/note_processor/utils/add_nullable_field_to_payload.js +0 -46
- package/src/note_processor/utils/add_nullable_field_to_payload.ts +0 -67
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { L1NotePayload, Note } from '@aztec/circuit-types';
|
|
2
|
-
import { ContractNotFoundError } from '@aztec/simulator';
|
|
3
|
-
/**
|
|
4
|
-
* Inserts publicly delivered nullable fields into the note payload.
|
|
5
|
-
* @param db - PXE database used to fetch contract instance and artifact.
|
|
6
|
-
* @param payload - Note payload to which nullable fields should be added.
|
|
7
|
-
* @param nullableFields - List of nullable fields to be added to the note payload.
|
|
8
|
-
* @returns Note payload with nullable fields added.
|
|
9
|
-
*/
|
|
10
|
-
export async function addNullableFieldsToPayload(db, payload, nullableFields) {
|
|
11
|
-
const instance = await db.getContractInstance(payload.contractAddress);
|
|
12
|
-
if (!instance) {
|
|
13
|
-
throw new ContractNotFoundError(`Could not find instance for ${payload.contractAddress.toString()}. This should never happen here as the partial notes flow should be triggered only for non-deferred notes.`);
|
|
14
|
-
}
|
|
15
|
-
const artifact = await db.getContractArtifact(instance.contractClassId);
|
|
16
|
-
if (!artifact) {
|
|
17
|
-
throw new Error(`Could not find artifact for contract class ${instance.contractClassId.toString()}. This should never happen here as the partial notes flow should be triggered only for non-deferred notes.`);
|
|
18
|
-
}
|
|
19
|
-
const noteFields = Object.values(artifact.notes).find(note => note.id.equals(payload.noteTypeId))?.fields;
|
|
20
|
-
if (!noteFields) {
|
|
21
|
-
throw new Error(`Could not find note fields for note type ${payload.noteTypeId.toString()}.`);
|
|
22
|
-
}
|
|
23
|
-
// We sort note fields by index so that we can iterate over them in order.
|
|
24
|
-
noteFields.sort((a, b) => a.index - b.index);
|
|
25
|
-
// Now we insert the nullable fields into the note based on its indices defined in the ABI.
|
|
26
|
-
const modifiedNoteItems = [...payload.note.items];
|
|
27
|
-
let indexInNullable = 0;
|
|
28
|
-
for (let i = 0; i < noteFields.length; i++) {
|
|
29
|
-
const noteField = noteFields[i];
|
|
30
|
-
if (noteField.nullable) {
|
|
31
|
-
if (i == noteFields.length - 1) {
|
|
32
|
-
// We are processing the last field so we simply insert the rest of the nullable fields at the end
|
|
33
|
-
modifiedNoteItems.push(...nullableFields.slice(indexInNullable));
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
const noteFieldLength = noteFields[i + 1].index - noteField.index;
|
|
37
|
-
const nullableFieldsToInsert = nullableFields.slice(indexInNullable, indexInNullable + noteFieldLength);
|
|
38
|
-
indexInNullable += noteFieldLength;
|
|
39
|
-
// Now we insert the nullable fields at the note field index
|
|
40
|
-
modifiedNoteItems.splice(noteField.index, 0, ...nullableFieldsToInsert);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return new L1NotePayload(new Note(modifiedNoteItems), payload.contractAddress, payload.storageSlot, payload.noteTypeId);
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkX251bGxhYmxlX2ZpZWxkX3RvX3BheWxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbm90ZV9wcm9jZXNzb3IvdXRpbHMvYWRkX251bGxhYmxlX2ZpZWxkX3RvX3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUl6RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQixDQUM5QyxFQUFlLEVBQ2YsT0FBc0IsRUFDdEIsY0FBb0I7SUFFcEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxxQkFBcUIsQ0FDN0IsK0JBQStCLE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLDRHQUE0RyxDQUM5SyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksS0FBSyxDQUNiLDhDQUE4QyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSw0R0FBNEcsQ0FDOUwsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFMUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTdDLDJGQUEyRjtJQUMzRixNQUFNLGlCQUFpQixHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQztJQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzNDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMvQixrR0FBa0c7Z0JBQ2xHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUNuRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztnQkFDbEUsTUFBTSxzQkFBc0IsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxlQUFlLEdBQUcsZUFBZSxDQUFDLENBQUM7Z0JBQ3hHLGVBQWUsSUFBSSxlQUFlLENBQUM7Z0JBQ25DLDREQUE0RDtnQkFDNUQsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztZQUMxRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksYUFBYSxDQUN0QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUMzQixPQUFPLENBQUMsZUFBZSxFQUN2QixPQUFPLENBQUMsV0FBVyxFQUNuQixPQUFPLENBQUMsVUFBVSxDQUNuQixDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { L1NotePayload, Note } from '@aztec/circuit-types';
|
|
2
|
-
import { type Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import { ContractNotFoundError } from '@aztec/simulator';
|
|
4
|
-
|
|
5
|
-
import { type PxeDatabase } from '../../database/pxe_database.js';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Inserts publicly delivered nullable fields into the note payload.
|
|
9
|
-
* @param db - PXE database used to fetch contract instance and artifact.
|
|
10
|
-
* @param payload - Note payload to which nullable fields should be added.
|
|
11
|
-
* @param nullableFields - List of nullable fields to be added to the note payload.
|
|
12
|
-
* @returns Note payload with nullable fields added.
|
|
13
|
-
*/
|
|
14
|
-
export async function addNullableFieldsToPayload(
|
|
15
|
-
db: PxeDatabase,
|
|
16
|
-
payload: L1NotePayload,
|
|
17
|
-
nullableFields: Fr[],
|
|
18
|
-
): Promise<L1NotePayload> {
|
|
19
|
-
const instance = await db.getContractInstance(payload.contractAddress);
|
|
20
|
-
if (!instance) {
|
|
21
|
-
throw new ContractNotFoundError(
|
|
22
|
-
`Could not find instance for ${payload.contractAddress.toString()}. This should never happen here as the partial notes flow should be triggered only for non-deferred notes.`,
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const artifact = await db.getContractArtifact(instance.contractClassId);
|
|
27
|
-
if (!artifact) {
|
|
28
|
-
throw new Error(
|
|
29
|
-
`Could not find artifact for contract class ${instance.contractClassId.toString()}. This should never happen here as the partial notes flow should be triggered only for non-deferred notes.`,
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const noteFields = Object.values(artifact.notes).find(note => note.id.equals(payload.noteTypeId))?.fields;
|
|
34
|
-
|
|
35
|
-
if (!noteFields) {
|
|
36
|
-
throw new Error(`Could not find note fields for note type ${payload.noteTypeId.toString()}.`);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// We sort note fields by index so that we can iterate over them in order.
|
|
40
|
-
noteFields.sort((a, b) => a.index - b.index);
|
|
41
|
-
|
|
42
|
-
// Now we insert the nullable fields into the note based on its indices defined in the ABI.
|
|
43
|
-
const modifiedNoteItems = [...payload.note.items];
|
|
44
|
-
let indexInNullable = 0;
|
|
45
|
-
for (let i = 0; i < noteFields.length; i++) {
|
|
46
|
-
const noteField = noteFields[i];
|
|
47
|
-
if (noteField.nullable) {
|
|
48
|
-
if (i == noteFields.length - 1) {
|
|
49
|
-
// We are processing the last field so we simply insert the rest of the nullable fields at the end
|
|
50
|
-
modifiedNoteItems.push(...nullableFields.slice(indexInNullable));
|
|
51
|
-
} else {
|
|
52
|
-
const noteFieldLength = noteFields[i + 1].index - noteField.index;
|
|
53
|
-
const nullableFieldsToInsert = nullableFields.slice(indexInNullable, indexInNullable + noteFieldLength);
|
|
54
|
-
indexInNullable += noteFieldLength;
|
|
55
|
-
// Now we insert the nullable fields at the note field index
|
|
56
|
-
modifiedNoteItems.splice(noteField.index, 0, ...nullableFieldsToInsert);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return new L1NotePayload(
|
|
62
|
-
new Note(modifiedNoteItems),
|
|
63
|
-
payload.contractAddress,
|
|
64
|
-
payload.storageSlot,
|
|
65
|
-
payload.noteTypeId,
|
|
66
|
-
);
|
|
67
|
-
}
|