@aztec/pxe 0.77.1 → 0.78.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/bin/index.js +1 -1
- package/dest/config/index.d.ts +1 -0
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/entrypoints/client/bundle/index.d.ts +6 -0
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -0
- package/dest/entrypoints/client/bundle/index.js +5 -0
- package/dest/entrypoints/client/bundle/utils.d.ts +16 -0
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -0
- package/dest/entrypoints/client/bundle/utils.js +30 -0
- package/dest/entrypoints/client/lazy/index.d.ts +6 -0
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -0
- package/dest/entrypoints/client/lazy/index.js +5 -0
- package/dest/entrypoints/client/lazy/utils.d.ts +15 -0
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -0
- package/dest/entrypoints/client/lazy/utils.js +29 -0
- package/dest/entrypoints/client/pxe_creation_options.d.ts +11 -0
- package/dest/entrypoints/client/pxe_creation_options.d.ts.map +1 -0
- package/dest/entrypoints/server/index.d.ts +7 -0
- package/dest/entrypoints/server/index.d.ts.map +1 -0
- package/dest/entrypoints/server/index.js +6 -0
- package/dest/{utils/create_pxe_service.d.ts → entrypoints/server/utils.d.ts} +4 -4
- package/dest/entrypoints/server/utils.d.ts.map +1 -0
- package/dest/{utils/create_pxe_service.js → entrypoints/server/utils.js} +5 -11
- package/dest/kernel_oracle/index.d.ts +2 -1
- package/dest/kernel_oracle/index.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.js +0 -28
- package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +2 -2
- package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +1 -1
- package/dest/note_decryption_utils/add_public_values_to_payload.js +3 -3
- package/dest/{pxe_data_provider → pxe_oracle_interface}/index.d.ts +17 -9
- package/dest/pxe_oracle_interface/index.d.ts.map +1 -0
- package/dest/{pxe_data_provider → pxe_oracle_interface}/index.js +104 -61
- package/dest/pxe_oracle_interface/tagging_utils.d.ts.map +1 -0
- package/dest/pxe_service/error_enriching.d.ts +3 -4
- package/dest/pxe_service/error_enriching.d.ts.map +1 -1
- package/dest/pxe_service/error_enriching.js +4 -4
- package/dest/pxe_service/pxe_service.d.ts +18 -14
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +118 -65
- package/dest/storage/address_data_provider/address_data_provider.d.ts +13 -0
- package/dest/storage/address_data_provider/address_data_provider.d.ts.map +1 -0
- package/dest/storage/address_data_provider/address_data_provider.js +50 -0
- package/dest/storage/address_data_provider/index.d.ts +2 -0
- package/dest/storage/address_data_provider/index.d.ts.map +1 -0
- package/dest/storage/address_data_provider/index.js +1 -0
- package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts +11 -0
- package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts.map +1 -0
- package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.js +20 -0
- package/dest/storage/auth_witness_data_provider/index.d.ts +2 -0
- package/dest/storage/auth_witness_data_provider/index.d.ts.map +1 -0
- package/dest/storage/auth_witness_data_provider/index.js +1 -0
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +16 -0
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -0
- package/dest/storage/capsule_data_provider/capsule_data_provider.js +57 -0
- package/dest/storage/capsule_data_provider/index.d.ts +2 -0
- package/dest/storage/capsule_data_provider/index.d.ts.map +1 -0
- package/dest/storage/capsule_data_provider/index.js +1 -0
- package/dest/{contract_data_provider → storage/contract_data_provider}/contract_data_provider.d.ts +38 -33
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +1 -0
- package/dest/{contract_data_provider → storage/contract_data_provider}/contract_data_provider.js +87 -42
- package/dest/storage/contract_data_provider/index.d.ts.map +1 -0
- package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/data_provider.d.ts +4 -0
- package/dest/storage/data_provider.d.ts.map +1 -0
- package/dest/storage/data_provider.js +1 -0
- package/dest/storage/index.d.ts +10 -0
- package/dest/storage/index.d.ts.map +1 -0
- package/dest/storage/index.js +9 -0
- package/dest/storage/note_data_provider/index.d.ts +3 -0
- package/dest/storage/note_data_provider/index.d.ts.map +1 -0
- package/dest/storage/note_data_provider/index.js +2 -0
- package/dest/storage/note_data_provider/note_dao.d.ts.map +1 -0
- package/dest/storage/note_data_provider/note_data_provider.d.ts +20 -0
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -0
- package/dest/storage/note_data_provider/note_data_provider.js +249 -0
- package/dest/storage/sync_data_provider/index.d.ts +2 -0
- package/dest/storage/sync_data_provider/index.d.ts.map +1 -0
- package/dest/storage/sync_data_provider/index.js +1 -0
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts +12 -0
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +1 -0
- package/dest/storage/sync_data_provider/sync_data_provider.js +29 -0
- package/dest/storage/tagging_data_provider/index.d.ts +2 -0
- package/dest/storage/tagging_data_provider/index.d.ts.map +1 -0
- package/dest/storage/tagging_data_provider/index.js +1 -0
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +18 -0
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +1 -0
- package/dest/storage/tagging_data_provider/tagging_data_provider.js +65 -0
- package/dest/synchronizer/synchronizer.d.ts +7 -3
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +16 -11
- package/dest/test/pxe_test_suite.d.ts.map +1 -0
- package/dest/{pxe_service/test → test}/pxe_test_suite.js +2 -6
- package/package.json +19 -26
- package/src/bin/index.ts +1 -1
- package/src/config/index.ts +2 -0
- package/src/entrypoints/client/bundle/index.ts +5 -0
- package/src/entrypoints/client/bundle/utils.ts +58 -0
- package/src/entrypoints/client/lazy/index.ts +5 -0
- package/src/entrypoints/client/lazy/utils.ts +53 -0
- package/src/entrypoints/client/pxe_creation_options.ts +7 -0
- package/src/entrypoints/server/index.ts +6 -0
- package/src/{utils/create_pxe_service.ts → entrypoints/server/utils.ts} +7 -18
- package/src/kernel_oracle/index.ts +1 -1
- package/src/kernel_prover/kernel_prover.ts +0 -51
- package/src/note_decryption_utils/add_public_values_to_payload.ts +4 -4
- package/src/{pxe_data_provider → pxe_oracle_interface}/index.ts +128 -96
- package/src/pxe_service/error_enriching.ts +8 -6
- package/src/pxe_service/pxe_service.ts +155 -89
- package/src/storage/address_data_provider/address_data_provider.ts +71 -0
- package/src/storage/address_data_provider/index.ts +1 -0
- package/src/storage/auth_witness_data_provider/auth_witness_data_provider.ts +34 -0
- package/src/storage/auth_witness_data_provider/index.ts +1 -0
- package/src/storage/capsule_data_provider/capsule_data_provider.ts +80 -0
- package/src/storage/capsule_data_provider/index.ts +1 -0
- package/src/{contract_data_provider → storage/contract_data_provider}/contract_data_provider.ts +128 -48
- package/src/storage/data_provider.ts +3 -0
- package/src/storage/index.ts +10 -0
- package/src/storage/note_data_provider/index.ts +2 -0
- package/src/storage/note_data_provider/note_data_provider.ts +345 -0
- package/src/storage/sync_data_provider/index.ts +1 -0
- package/src/storage/sync_data_provider/sync_data_provider.ts +40 -0
- package/src/storage/tagging_data_provider/index.ts +1 -0
- package/src/storage/tagging_data_provider/tagging_data_provider.ts +92 -0
- package/src/synchronizer/synchronizer.ts +15 -10
- package/src/{pxe_service/test → test}/pxe_test_suite.ts +2 -9
- package/dest/contract_data_provider/contract_data_provider.d.ts.map +0 -1
- package/dest/contract_data_provider/index.d.ts.map +0 -1
- package/dest/contract_data_provider/private_functions_tree.d.ts.map +0 -1
- package/dest/database/index.d.ts +0 -3
- package/dest/database/index.d.ts.map +0 -1
- package/dest/database/index.js +0 -2
- package/dest/database/interfaces/contract_artifact_db.d.ts +0 -20
- package/dest/database/interfaces/contract_artifact_db.d.ts.map +0 -1
- package/dest/database/interfaces/contract_artifact_db.js +0 -3
- package/dest/database/interfaces/contract_instance_db.d.ts +0 -20
- package/dest/database/interfaces/contract_instance_db.d.ts.map +0 -1
- package/dest/database/interfaces/contract_instance_db.js +0 -3
- package/dest/database/interfaces/index.d.ts +0 -4
- package/dest/database/interfaces/index.d.ts.map +0 -1
- package/dest/database/interfaces/pxe_database.d.ts +0 -211
- package/dest/database/interfaces/pxe_database.d.ts.map +0 -1
- package/dest/database/interfaces/pxe_database.js +0 -4
- package/dest/database/interfaces/pxe_database_test_suite.d.ts +0 -7
- package/dest/database/interfaces/pxe_database_test_suite.d.ts.map +0 -1
- package/dest/database/interfaces/pxe_database_test_suite.js +0 -557
- package/dest/database/kv_pxe_database.d.ts +0 -58
- package/dest/database/kv_pxe_database.d.ts.map +0 -1
- package/dest/database/kv_pxe_database.js +0 -480
- package/dest/database/note_dao.d.ts.map +0 -1
- package/dest/index.d.ts +0 -9
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -8
- package/dest/pxe_data_provider/index.d.ts.map +0 -1
- package/dest/pxe_data_provider/tagging_utils.d.ts.map +0 -1
- package/dest/pxe_service/test/pxe_test_suite.d.ts.map +0 -1
- package/dest/utils/create_pxe_service.d.ts.map +0 -1
- package/src/database/index.ts +0 -2
- package/src/database/interfaces/contract_artifact_db.ts +0 -20
- package/src/database/interfaces/contract_instance_db.ts +0 -21
- package/src/database/interfaces/index.ts +0 -3
- package/src/database/interfaces/pxe_database.ts +0 -240
- package/src/database/interfaces/pxe_database_test_suite.ts +0 -558
- package/src/database/kv_pxe_database.ts +0 -670
- package/src/index.ts +0 -9
- /package/dest/{database/interfaces/index.js → entrypoints/client/pxe_creation_options.js} +0 -0
- /package/dest/{pxe_data_provider → pxe_oracle_interface}/tagging_utils.d.ts +0 -0
- /package/dest/{pxe_data_provider → pxe_oracle_interface}/tagging_utils.js +0 -0
- /package/dest/{contract_data_provider → storage/contract_data_provider}/index.d.ts +0 -0
- /package/dest/{contract_data_provider → storage/contract_data_provider}/index.js +0 -0
- /package/dest/{contract_data_provider → storage/contract_data_provider}/private_functions_tree.d.ts +0 -0
- /package/dest/{contract_data_provider → storage/contract_data_provider}/private_functions_tree.js +0 -0
- /package/dest/{database → storage/note_data_provider}/note_dao.d.ts +0 -0
- /package/dest/{database → storage/note_data_provider}/note_dao.js +0 -0
- /package/dest/{pxe_service/test → test}/pxe_test_suite.d.ts +0 -0
- /package/src/{pxe_data_provider → pxe_oracle_interface}/tagging_utils.ts +0 -0
- /package/src/{contract_data_provider → storage/contract_data_provider}/index.ts +0 -0
- /package/src/{contract_data_provider → storage/contract_data_provider}/private_functions_tree.ts +0 -0
- /package/src/{database → storage/note_data_provider}/note_dao.ts +0 -0
|
@@ -1,557 +0,0 @@
|
|
|
1
|
-
import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
2
|
-
import { timesParallel } from '@aztec/foundation/collection';
|
|
3
|
-
import { randomInt } from '@aztec/foundation/crypto';
|
|
4
|
-
import { Fr, Point } from '@aztec/foundation/fields';
|
|
5
|
-
import { BenchmarkingContractArtifact } from '@aztec/noir-contracts.js/Benchmarking';
|
|
6
|
-
import { TestContractArtifact } from '@aztec/noir-contracts.js/Test';
|
|
7
|
-
import { FunctionType } from '@aztec/stdlib/abi';
|
|
8
|
-
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
-
import { CompleteAddress, SerializableContractInstance } from '@aztec/stdlib/contract';
|
|
10
|
-
import { PublicKeys } from '@aztec/stdlib/keys';
|
|
11
|
-
import { NoteStatus } from '@aztec/stdlib/note';
|
|
12
|
-
import { makeHeader, randomTxHash } from '@aztec/stdlib/testing';
|
|
13
|
-
import times from 'lodash.times';
|
|
14
|
-
import { NoteDao } from '../note_dao.js';
|
|
15
|
-
/**
|
|
16
|
-
* A common test suite for a PXE database.
|
|
17
|
-
* @param getDatabase - A function that returns a database instance.
|
|
18
|
-
*/ export function describePxeDatabase(getDatabase) {
|
|
19
|
-
let database;
|
|
20
|
-
beforeEach(()=>{
|
|
21
|
-
database = getDatabase();
|
|
22
|
-
});
|
|
23
|
-
describe('Database', ()=>{
|
|
24
|
-
describe('auth witnesses', ()=>{
|
|
25
|
-
it('stores and retrieves auth witnesses', async ()=>{
|
|
26
|
-
const messageHash = Fr.random();
|
|
27
|
-
const witness = [
|
|
28
|
-
Fr.random(),
|
|
29
|
-
Fr.random()
|
|
30
|
-
];
|
|
31
|
-
await database.addAuthWitness(messageHash, witness);
|
|
32
|
-
await expect(database.getAuthWitness(messageHash)).resolves.toEqual(witness);
|
|
33
|
-
});
|
|
34
|
-
it("returns undefined if it doesn't have auth witnesses for the message", async ()=>{
|
|
35
|
-
const messageHash = Fr.random();
|
|
36
|
-
await expect(database.getAuthWitness(messageHash)).resolves.toBeUndefined();
|
|
37
|
-
});
|
|
38
|
-
it.skip('refuses to overwrite auth witnesses for the same message', async ()=>{
|
|
39
|
-
const messageHash = Fr.random();
|
|
40
|
-
const witness = [
|
|
41
|
-
Fr.random(),
|
|
42
|
-
Fr.random()
|
|
43
|
-
];
|
|
44
|
-
await database.addAuthWitness(messageHash, witness);
|
|
45
|
-
await expect(database.addAuthWitness(messageHash, witness)).rejects.toThrow();
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
describe('incoming notes', ()=>{
|
|
49
|
-
let owners;
|
|
50
|
-
let contractAddresses;
|
|
51
|
-
let storageSlots;
|
|
52
|
-
let notes;
|
|
53
|
-
const filteringTests = [
|
|
54
|
-
[
|
|
55
|
-
()=>Promise.resolve({}),
|
|
56
|
-
()=>Promise.resolve(notes)
|
|
57
|
-
],
|
|
58
|
-
[
|
|
59
|
-
()=>Promise.resolve({
|
|
60
|
-
contractAddress: contractAddresses[0]
|
|
61
|
-
}),
|
|
62
|
-
()=>Promise.resolve(notes.filter((note)=>note.contractAddress.equals(contractAddresses[0])))
|
|
63
|
-
],
|
|
64
|
-
[
|
|
65
|
-
async ()=>({
|
|
66
|
-
contractAddress: await AztecAddress.random()
|
|
67
|
-
}),
|
|
68
|
-
()=>Promise.resolve([])
|
|
69
|
-
],
|
|
70
|
-
[
|
|
71
|
-
()=>Promise.resolve({
|
|
72
|
-
storageSlot: storageSlots[0]
|
|
73
|
-
}),
|
|
74
|
-
()=>Promise.resolve(notes.filter((note)=>note.storageSlot.equals(storageSlots[0])))
|
|
75
|
-
],
|
|
76
|
-
[
|
|
77
|
-
()=>Promise.resolve({
|
|
78
|
-
storageSlot: Fr.random()
|
|
79
|
-
}),
|
|
80
|
-
()=>Promise.resolve([])
|
|
81
|
-
],
|
|
82
|
-
[
|
|
83
|
-
()=>Promise.resolve({
|
|
84
|
-
txHash: notes[0].txHash
|
|
85
|
-
}),
|
|
86
|
-
()=>Promise.resolve([
|
|
87
|
-
notes[0]
|
|
88
|
-
])
|
|
89
|
-
],
|
|
90
|
-
[
|
|
91
|
-
()=>Promise.resolve({
|
|
92
|
-
txHash: randomTxHash()
|
|
93
|
-
}),
|
|
94
|
-
()=>Promise.resolve([])
|
|
95
|
-
],
|
|
96
|
-
[
|
|
97
|
-
()=>Promise.resolve({
|
|
98
|
-
owner: owners[0].address
|
|
99
|
-
}),
|
|
100
|
-
async ()=>{
|
|
101
|
-
const ownerAddressPoint = await owners[0].address.toAddressPoint();
|
|
102
|
-
return notes.filter((note)=>note.addressPoint.equals(ownerAddressPoint));
|
|
103
|
-
}
|
|
104
|
-
],
|
|
105
|
-
[
|
|
106
|
-
()=>Promise.resolve({
|
|
107
|
-
contractAddress: contractAddresses[0],
|
|
108
|
-
storageSlot: storageSlots[0]
|
|
109
|
-
}),
|
|
110
|
-
()=>Promise.resolve(notes.filter((note)=>note.contractAddress.equals(contractAddresses[0]) && note.storageSlot.equals(storageSlots[0])))
|
|
111
|
-
],
|
|
112
|
-
[
|
|
113
|
-
()=>Promise.resolve({
|
|
114
|
-
contractAddress: contractAddresses[0],
|
|
115
|
-
storageSlot: storageSlots[1]
|
|
116
|
-
}),
|
|
117
|
-
()=>Promise.resolve([])
|
|
118
|
-
]
|
|
119
|
-
];
|
|
120
|
-
beforeEach(async ()=>{
|
|
121
|
-
owners = await timesParallel(2, ()=>CompleteAddress.random());
|
|
122
|
-
contractAddresses = await timesParallel(2, ()=>AztecAddress.random());
|
|
123
|
-
storageSlots = times(2, ()=>Fr.random());
|
|
124
|
-
notes = await timesParallel(10, async (i)=>{
|
|
125
|
-
const addressPoint = await owners[i % owners.length].address.toAddressPoint();
|
|
126
|
-
return NoteDao.random({
|
|
127
|
-
contractAddress: contractAddresses[i % contractAddresses.length],
|
|
128
|
-
storageSlot: storageSlots[i % storageSlots.length],
|
|
129
|
-
addressPoint,
|
|
130
|
-
index: BigInt(i),
|
|
131
|
-
l2BlockNumber: i
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
for (const owner of owners){
|
|
135
|
-
await database.addCompleteAddress(owner);
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
it.each(filteringTests)('stores notes in bulk and retrieves notes', async (getFilter, getExpected)=>{
|
|
139
|
-
await database.addNotes(notes);
|
|
140
|
-
const returnedNotes = await database.getNotes(await getFilter());
|
|
141
|
-
const expected = await getExpected();
|
|
142
|
-
expect(returnedNotes.sort()).toEqual(expected.sort());
|
|
143
|
-
});
|
|
144
|
-
it.each(filteringTests)('stores notes one by one and retrieves notes', async (getFilter, getExpected)=>{
|
|
145
|
-
for (const note of notes){
|
|
146
|
-
await database.addNote(note);
|
|
147
|
-
}
|
|
148
|
-
const returnedNotes = await database.getNotes(await getFilter());
|
|
149
|
-
const expected = await getExpected();
|
|
150
|
-
expect(returnedNotes.sort()).toEqual(expected.sort());
|
|
151
|
-
});
|
|
152
|
-
it.each(filteringTests)('retrieves nullified notes', async (getFilter, getExpected)=>{
|
|
153
|
-
await database.addNotes(notes);
|
|
154
|
-
// Nullify all notes and use the same filter as other test cases
|
|
155
|
-
for (const owner of owners){
|
|
156
|
-
const ownerAddressPoint = await owner.address.toAddressPoint();
|
|
157
|
-
const notesToNullify = notes.filter((note)=>note.addressPoint.equals(ownerAddressPoint));
|
|
158
|
-
const nullifiers = notesToNullify.map((note)=>({
|
|
159
|
-
data: note.siloedNullifier,
|
|
160
|
-
l2BlockNumber: note.l2BlockNumber,
|
|
161
|
-
l2BlockHash: note.l2BlockHash
|
|
162
|
-
}));
|
|
163
|
-
await expect(database.removeNullifiedNotes(nullifiers, ownerAddressPoint)).resolves.toEqual(notesToNullify);
|
|
164
|
-
}
|
|
165
|
-
const filter = await getFilter();
|
|
166
|
-
const returnedNotes = await database.getNotes({
|
|
167
|
-
...filter,
|
|
168
|
-
status: NoteStatus.ACTIVE_OR_NULLIFIED
|
|
169
|
-
});
|
|
170
|
-
const expected = await getExpected();
|
|
171
|
-
expect(returnedNotes.sort()).toEqual(expected.sort());
|
|
172
|
-
});
|
|
173
|
-
it('skips nullified notes by default or when requesting active', async ()=>{
|
|
174
|
-
await database.addNotes(notes);
|
|
175
|
-
const ownerAddressPoint = await owners[0].address.toAddressPoint();
|
|
176
|
-
const notesToNullify = notes.filter((note)=>note.addressPoint.equals(ownerAddressPoint));
|
|
177
|
-
const nullifiers = notesToNullify.map((note)=>({
|
|
178
|
-
data: note.siloedNullifier,
|
|
179
|
-
l2BlockNumber: note.l2BlockNumber,
|
|
180
|
-
l2BlockHash: note.l2BlockHash
|
|
181
|
-
}));
|
|
182
|
-
await expect(database.removeNullifiedNotes(nullifiers, notesToNullify[0].addressPoint)).resolves.toEqual(notesToNullify);
|
|
183
|
-
const actualNotesWithDefault = await database.getNotes({});
|
|
184
|
-
const actualNotesWithActive = await database.getNotes({
|
|
185
|
-
status: NoteStatus.ACTIVE
|
|
186
|
-
});
|
|
187
|
-
expect(actualNotesWithDefault).toEqual(actualNotesWithActive);
|
|
188
|
-
expect(actualNotesWithActive).toEqual(notes.filter((note)=>!notesToNullify.includes(note)));
|
|
189
|
-
});
|
|
190
|
-
it('handles note unnullification', async ()=>{
|
|
191
|
-
await database.setHeader(makeHeader(randomInt(1000), 100, 0 /** slot number */ ));
|
|
192
|
-
await database.addNotes(notes);
|
|
193
|
-
const ownerAddressPoint = await owners[0].address.toAddressPoint();
|
|
194
|
-
const notesToNullify = notes.filter((note)=>note.addressPoint.equals(ownerAddressPoint));
|
|
195
|
-
const nullifiers = notesToNullify.map((note)=>({
|
|
196
|
-
data: note.siloedNullifier,
|
|
197
|
-
l2BlockNumber: 99,
|
|
198
|
-
l2BlockHash: Fr.random().toString()
|
|
199
|
-
}));
|
|
200
|
-
await expect(database.removeNullifiedNotes(nullifiers, notesToNullify[0].addressPoint)).resolves.toEqual(notesToNullify);
|
|
201
|
-
await expect(database.unnullifyNotesAfter(98)).resolves.toEqual(undefined);
|
|
202
|
-
const result = await database.getNotes({
|
|
203
|
-
status: NoteStatus.ACTIVE,
|
|
204
|
-
owner: owners[0].address
|
|
205
|
-
});
|
|
206
|
-
expect(result.sort()).toEqual([
|
|
207
|
-
...notesToNullify
|
|
208
|
-
].sort());
|
|
209
|
-
});
|
|
210
|
-
it('returns active and nullified notes when requesting either', async ()=>{
|
|
211
|
-
await database.addNotes(notes);
|
|
212
|
-
const ownerAddressPoint = await owners[0].address.toAddressPoint();
|
|
213
|
-
const notesToNullify = notes.filter((note)=>note.addressPoint.equals(ownerAddressPoint));
|
|
214
|
-
const nullifiers = notesToNullify.map((note)=>({
|
|
215
|
-
data: note.siloedNullifier,
|
|
216
|
-
l2BlockNumber: note.l2BlockNumber,
|
|
217
|
-
l2BlockHash: note.l2BlockHash
|
|
218
|
-
}));
|
|
219
|
-
await expect(database.removeNullifiedNotes(nullifiers, notesToNullify[0].addressPoint)).resolves.toEqual(notesToNullify);
|
|
220
|
-
const result = await database.getNotes({
|
|
221
|
-
status: NoteStatus.ACTIVE_OR_NULLIFIED
|
|
222
|
-
});
|
|
223
|
-
// We have to compare the sorted arrays since the database does not return the same order as when originally
|
|
224
|
-
// inserted combining active and nullified results.
|
|
225
|
-
expect(result.sort()).toEqual([
|
|
226
|
-
...notes
|
|
227
|
-
].sort());
|
|
228
|
-
});
|
|
229
|
-
it('stores notes one by one and retrieves notes with siloed account', async ()=>{
|
|
230
|
-
for (const note of notes.slice(0, 5)){
|
|
231
|
-
await database.addNote(note, owners[0].address);
|
|
232
|
-
}
|
|
233
|
-
for (const note of notes.slice(5)){
|
|
234
|
-
await database.addNote(note, owners[1].address);
|
|
235
|
-
}
|
|
236
|
-
const owner0Notes = await database.getNotes({
|
|
237
|
-
scopes: [
|
|
238
|
-
owners[0].address
|
|
239
|
-
]
|
|
240
|
-
});
|
|
241
|
-
expect(owner0Notes.sort()).toEqual(notes.slice(0, 5).sort());
|
|
242
|
-
const owner1Notes = await database.getNotes({
|
|
243
|
-
scopes: [
|
|
244
|
-
owners[1].address
|
|
245
|
-
]
|
|
246
|
-
});
|
|
247
|
-
expect(owner1Notes.sort()).toEqual(notes.slice(5).sort());
|
|
248
|
-
const bothOwnerNotes = await database.getNotes({
|
|
249
|
-
scopes: [
|
|
250
|
-
owners[0].address,
|
|
251
|
-
owners[1].address
|
|
252
|
-
]
|
|
253
|
-
});
|
|
254
|
-
expect(bothOwnerNotes.sort()).toEqual(notes.sort());
|
|
255
|
-
});
|
|
256
|
-
it('a nullified note removes notes from all accounts in the pxe', async ()=>{
|
|
257
|
-
await database.addNote(notes[0], owners[0].address);
|
|
258
|
-
await database.addNote(notes[0], owners[1].address);
|
|
259
|
-
await expect(database.getNotes({
|
|
260
|
-
scopes: [
|
|
261
|
-
owners[0].address
|
|
262
|
-
]
|
|
263
|
-
})).resolves.toEqual([
|
|
264
|
-
notes[0]
|
|
265
|
-
]);
|
|
266
|
-
await expect(database.getNotes({
|
|
267
|
-
scopes: [
|
|
268
|
-
owners[1].address
|
|
269
|
-
]
|
|
270
|
-
})).resolves.toEqual([
|
|
271
|
-
notes[0]
|
|
272
|
-
]);
|
|
273
|
-
const ownerAddressPoint = await owners[0].address.toAddressPoint();
|
|
274
|
-
await expect(database.removeNullifiedNotes([
|
|
275
|
-
{
|
|
276
|
-
data: notes[0].siloedNullifier,
|
|
277
|
-
l2BlockHash: notes[0].l2BlockHash,
|
|
278
|
-
l2BlockNumber: notes[0].l2BlockNumber
|
|
279
|
-
}
|
|
280
|
-
], ownerAddressPoint)).resolves.toEqual([
|
|
281
|
-
notes[0]
|
|
282
|
-
]);
|
|
283
|
-
await expect(database.getNotes({
|
|
284
|
-
scopes: [
|
|
285
|
-
owners[0].address
|
|
286
|
-
]
|
|
287
|
-
})).resolves.toEqual([]);
|
|
288
|
-
await expect(database.getNotes({
|
|
289
|
-
scopes: [
|
|
290
|
-
owners[1].address
|
|
291
|
-
]
|
|
292
|
-
})).resolves.toEqual([]);
|
|
293
|
-
});
|
|
294
|
-
it('removes notes after a given block', async ()=>{
|
|
295
|
-
await database.addNotes(notes, owners[0].address);
|
|
296
|
-
await database.removeNotesAfter(5);
|
|
297
|
-
const result = await database.getNotes({
|
|
298
|
-
scopes: [
|
|
299
|
-
owners[0].address
|
|
300
|
-
]
|
|
301
|
-
});
|
|
302
|
-
expect(new Set(result)).toEqual(new Set(notes.slice(0, 6)));
|
|
303
|
-
});
|
|
304
|
-
});
|
|
305
|
-
describe('block header', ()=>{
|
|
306
|
-
it('stores and retrieves the block header', async ()=>{
|
|
307
|
-
const header = makeHeader(randomInt(1000), INITIAL_L2_BLOCK_NUM, 0 /** slot number */ );
|
|
308
|
-
await database.setHeader(header);
|
|
309
|
-
await expect(database.getBlockHeader()).resolves.toEqual(header);
|
|
310
|
-
});
|
|
311
|
-
it('rejects getting header if no block set', async ()=>{
|
|
312
|
-
await expect(()=>database.getBlockHeader()).rejects.toThrow();
|
|
313
|
-
});
|
|
314
|
-
});
|
|
315
|
-
describe('addresses', ()=>{
|
|
316
|
-
it('stores and retrieves addresses', async ()=>{
|
|
317
|
-
const address = await CompleteAddress.random();
|
|
318
|
-
await expect(database.addCompleteAddress(address)).resolves.toBe(true);
|
|
319
|
-
await expect(database.getCompleteAddress(address.address)).resolves.toEqual(address);
|
|
320
|
-
});
|
|
321
|
-
it('silently ignores an address it already knows about', async ()=>{
|
|
322
|
-
const address = await CompleteAddress.random();
|
|
323
|
-
await expect(database.addCompleteAddress(address)).resolves.toBe(true);
|
|
324
|
-
await expect(database.addCompleteAddress(address)).resolves.toBe(false);
|
|
325
|
-
});
|
|
326
|
-
it.skip('refuses to overwrite an address with a different public key', async ()=>{
|
|
327
|
-
const address = await CompleteAddress.random();
|
|
328
|
-
const otherAddress = await CompleteAddress.create(address.address, new PublicKeys(await Point.random(), await Point.random(), await Point.random(), await Point.random()), address.partialAddress);
|
|
329
|
-
await database.addCompleteAddress(address);
|
|
330
|
-
await expect(database.addCompleteAddress(otherAddress)).rejects.toThrow();
|
|
331
|
-
});
|
|
332
|
-
it('returns all addresses', async ()=>{
|
|
333
|
-
const addresses = await timesParallel(10, ()=>CompleteAddress.random());
|
|
334
|
-
for (const address of addresses){
|
|
335
|
-
await database.addCompleteAddress(address);
|
|
336
|
-
}
|
|
337
|
-
const result = await database.getCompleteAddresses();
|
|
338
|
-
expect(result).toEqual(expect.arrayContaining(addresses));
|
|
339
|
-
});
|
|
340
|
-
it('returns a single address', async ()=>{
|
|
341
|
-
const addresses = await timesParallel(10, ()=>CompleteAddress.random());
|
|
342
|
-
for (const address of addresses){
|
|
343
|
-
await database.addCompleteAddress(address);
|
|
344
|
-
}
|
|
345
|
-
const result = await database.getCompleteAddress(addresses[3].address);
|
|
346
|
-
expect(result).toEqual(addresses[3]);
|
|
347
|
-
});
|
|
348
|
-
it("returns an empty array if it doesn't have addresses", async ()=>{
|
|
349
|
-
expect(await database.getCompleteAddresses()).toEqual([]);
|
|
350
|
-
});
|
|
351
|
-
it("returns undefined if it doesn't have an address", async ()=>{
|
|
352
|
-
const completeAddress = await CompleteAddress.random();
|
|
353
|
-
expect(await database.getCompleteAddress(completeAddress.address)).toBeUndefined();
|
|
354
|
-
});
|
|
355
|
-
});
|
|
356
|
-
describe('contracts', ()=>{
|
|
357
|
-
it('stores a contract artifact', async ()=>{
|
|
358
|
-
const artifact = BenchmarkingContractArtifact;
|
|
359
|
-
const id = Fr.random();
|
|
360
|
-
await database.addContractArtifact(id, artifact);
|
|
361
|
-
await expect(database.getContractArtifact(id)).resolves.toEqual(artifact);
|
|
362
|
-
});
|
|
363
|
-
it('does not store a contract artifact with a duplicate private function selector', async ()=>{
|
|
364
|
-
const artifact = TestContractArtifact;
|
|
365
|
-
const index = artifact.functions.findIndex((fn)=>fn.functionType === FunctionType.PRIVATE);
|
|
366
|
-
const copiedFn = structuredClone(artifact.functions[index]);
|
|
367
|
-
artifact.functions.push(copiedFn);
|
|
368
|
-
const id = Fr.random();
|
|
369
|
-
await expect(database.addContractArtifact(id, artifact)).rejects.toThrow('Repeated function selectors of private functions');
|
|
370
|
-
});
|
|
371
|
-
it('stores a contract instance', async ()=>{
|
|
372
|
-
const address = await AztecAddress.random();
|
|
373
|
-
const instance = (await SerializableContractInstance.random()).withAddress(address);
|
|
374
|
-
await database.addContractInstance(instance);
|
|
375
|
-
await expect(database.getContractInstance(address)).resolves.toEqual(instance);
|
|
376
|
-
});
|
|
377
|
-
});
|
|
378
|
-
describe('contract non-volatile database', ()=>{
|
|
379
|
-
let contract;
|
|
380
|
-
beforeEach(async ()=>{
|
|
381
|
-
// Setup mock contract address
|
|
382
|
-
contract = await AztecAddress.random();
|
|
383
|
-
});
|
|
384
|
-
it('stores and loads a single value', async ()=>{
|
|
385
|
-
const slot = new Fr(1);
|
|
386
|
-
const values = [
|
|
387
|
-
new Fr(42)
|
|
388
|
-
];
|
|
389
|
-
await database.storeCapsule(contract, slot, values);
|
|
390
|
-
const result = await database.loadCapsule(contract, slot);
|
|
391
|
-
expect(result).toEqual(values);
|
|
392
|
-
});
|
|
393
|
-
it('stores and loads multiple values', async ()=>{
|
|
394
|
-
const slot = new Fr(1);
|
|
395
|
-
const values = [
|
|
396
|
-
new Fr(42),
|
|
397
|
-
new Fr(43),
|
|
398
|
-
new Fr(44)
|
|
399
|
-
];
|
|
400
|
-
await database.storeCapsule(contract, slot, values);
|
|
401
|
-
const result = await database.loadCapsule(contract, slot);
|
|
402
|
-
expect(result).toEqual(values);
|
|
403
|
-
});
|
|
404
|
-
it('overwrites existing values', async ()=>{
|
|
405
|
-
const slot = new Fr(1);
|
|
406
|
-
const initialValues = [
|
|
407
|
-
new Fr(42)
|
|
408
|
-
];
|
|
409
|
-
const newValues = [
|
|
410
|
-
new Fr(100)
|
|
411
|
-
];
|
|
412
|
-
await database.storeCapsule(contract, slot, initialValues);
|
|
413
|
-
await database.storeCapsule(contract, slot, newValues);
|
|
414
|
-
const result = await database.loadCapsule(contract, slot);
|
|
415
|
-
expect(result).toEqual(newValues);
|
|
416
|
-
});
|
|
417
|
-
it('stores values for different contracts independently', async ()=>{
|
|
418
|
-
const anotherContract = await AztecAddress.random();
|
|
419
|
-
const slot = new Fr(1);
|
|
420
|
-
const values1 = [
|
|
421
|
-
new Fr(42)
|
|
422
|
-
];
|
|
423
|
-
const values2 = [
|
|
424
|
-
new Fr(100)
|
|
425
|
-
];
|
|
426
|
-
await database.storeCapsule(contract, slot, values1);
|
|
427
|
-
await database.storeCapsule(anotherContract, slot, values2);
|
|
428
|
-
const result1 = await database.loadCapsule(contract, slot);
|
|
429
|
-
const result2 = await database.loadCapsule(anotherContract, slot);
|
|
430
|
-
expect(result1).toEqual(values1);
|
|
431
|
-
expect(result2).toEqual(values2);
|
|
432
|
-
});
|
|
433
|
-
it('returns null for non-existent slots', async ()=>{
|
|
434
|
-
const slot = Fr.random();
|
|
435
|
-
const result = await database.loadCapsule(contract, slot);
|
|
436
|
-
expect(result).toBeNull();
|
|
437
|
-
});
|
|
438
|
-
it('deletes a slot', async ()=>{
|
|
439
|
-
const slot = new Fr(1);
|
|
440
|
-
const values = [
|
|
441
|
-
new Fr(42)
|
|
442
|
-
];
|
|
443
|
-
await database.storeCapsule(contract, slot, values);
|
|
444
|
-
await database.deleteCapsule(contract, slot);
|
|
445
|
-
expect(await database.loadCapsule(contract, slot)).toBeNull();
|
|
446
|
-
});
|
|
447
|
-
it('deletes an empty slot', async ()=>{
|
|
448
|
-
const slot = new Fr(1);
|
|
449
|
-
await database.deleteCapsule(contract, slot);
|
|
450
|
-
expect(await database.loadCapsule(contract, slot)).toBeNull();
|
|
451
|
-
});
|
|
452
|
-
it('copies a single value', async ()=>{
|
|
453
|
-
const slot = new Fr(1);
|
|
454
|
-
const values = [
|
|
455
|
-
new Fr(42)
|
|
456
|
-
];
|
|
457
|
-
await database.storeCapsule(contract, slot, values);
|
|
458
|
-
const dstSlot = new Fr(5);
|
|
459
|
-
await database.copyCapsule(contract, slot, dstSlot, 1);
|
|
460
|
-
expect(await database.loadCapsule(contract, dstSlot)).toEqual(values);
|
|
461
|
-
});
|
|
462
|
-
it('copies multiple non-overlapping values', async ()=>{
|
|
463
|
-
const src = new Fr(1);
|
|
464
|
-
const valuesArray = [
|
|
465
|
-
[
|
|
466
|
-
new Fr(42)
|
|
467
|
-
],
|
|
468
|
-
[
|
|
469
|
-
new Fr(1337)
|
|
470
|
-
],
|
|
471
|
-
[
|
|
472
|
-
new Fr(13)
|
|
473
|
-
]
|
|
474
|
-
];
|
|
475
|
-
await database.storeCapsule(contract, src, valuesArray[0]);
|
|
476
|
-
await database.storeCapsule(contract, src.add(new Fr(1)), valuesArray[1]);
|
|
477
|
-
await database.storeCapsule(contract, src.add(new Fr(2)), valuesArray[2]);
|
|
478
|
-
const dst = new Fr(5);
|
|
479
|
-
await database.copyCapsule(contract, src, dst, 3);
|
|
480
|
-
expect(await database.loadCapsule(contract, dst)).toEqual(valuesArray[0]);
|
|
481
|
-
expect(await database.loadCapsule(contract, dst.add(new Fr(1)))).toEqual(valuesArray[1]);
|
|
482
|
-
expect(await database.loadCapsule(contract, dst.add(new Fr(2)))).toEqual(valuesArray[2]);
|
|
483
|
-
});
|
|
484
|
-
it('copies overlapping values with src ahead', async ()=>{
|
|
485
|
-
const src = new Fr(1);
|
|
486
|
-
const valuesArray = [
|
|
487
|
-
[
|
|
488
|
-
new Fr(42)
|
|
489
|
-
],
|
|
490
|
-
[
|
|
491
|
-
new Fr(1337)
|
|
492
|
-
],
|
|
493
|
-
[
|
|
494
|
-
new Fr(13)
|
|
495
|
-
]
|
|
496
|
-
];
|
|
497
|
-
await database.storeCapsule(contract, src, valuesArray[0]);
|
|
498
|
-
await database.storeCapsule(contract, src.add(new Fr(1)), valuesArray[1]);
|
|
499
|
-
await database.storeCapsule(contract, src.add(new Fr(2)), valuesArray[2]);
|
|
500
|
-
const dst = new Fr(2);
|
|
501
|
-
await database.copyCapsule(contract, src, dst, 3);
|
|
502
|
-
expect(await database.loadCapsule(contract, dst)).toEqual(valuesArray[0]);
|
|
503
|
-
expect(await database.loadCapsule(contract, dst.add(new Fr(1)))).toEqual(valuesArray[1]);
|
|
504
|
-
expect(await database.loadCapsule(contract, dst.add(new Fr(2)))).toEqual(valuesArray[2]);
|
|
505
|
-
// Slots 2 and 3 (src[1] and src[2]) should have been overwritten since they are also dst[0] and dst[1]
|
|
506
|
-
expect(await database.loadCapsule(contract, src)).toEqual(valuesArray[0]); // src[0] (unchanged)
|
|
507
|
-
expect(await database.loadCapsule(contract, src.add(new Fr(1)))).toEqual(valuesArray[0]); // dst[0]
|
|
508
|
-
expect(await database.loadCapsule(contract, src.add(new Fr(2)))).toEqual(valuesArray[1]); // dst[1]
|
|
509
|
-
});
|
|
510
|
-
it('copies overlapping values with dst ahead', async ()=>{
|
|
511
|
-
const src = new Fr(5);
|
|
512
|
-
const valuesArray = [
|
|
513
|
-
[
|
|
514
|
-
new Fr(42)
|
|
515
|
-
],
|
|
516
|
-
[
|
|
517
|
-
new Fr(1337)
|
|
518
|
-
],
|
|
519
|
-
[
|
|
520
|
-
new Fr(13)
|
|
521
|
-
]
|
|
522
|
-
];
|
|
523
|
-
await database.storeCapsule(contract, src, valuesArray[0]);
|
|
524
|
-
await database.storeCapsule(contract, src.add(new Fr(1)), valuesArray[1]);
|
|
525
|
-
await database.storeCapsule(contract, src.add(new Fr(2)), valuesArray[2]);
|
|
526
|
-
const dst = new Fr(4);
|
|
527
|
-
await database.copyCapsule(contract, src, dst, 3);
|
|
528
|
-
expect(await database.loadCapsule(contract, dst)).toEqual(valuesArray[0]);
|
|
529
|
-
expect(await database.loadCapsule(contract, dst.add(new Fr(1)))).toEqual(valuesArray[1]);
|
|
530
|
-
expect(await database.loadCapsule(contract, dst.add(new Fr(2)))).toEqual(valuesArray[2]);
|
|
531
|
-
// Slots 5 and 6 (src[0] and src[1]) should have been overwritten since they are also dst[1] and dst[2]
|
|
532
|
-
expect(await database.loadCapsule(contract, src)).toEqual(valuesArray[1]); // dst[1]
|
|
533
|
-
expect(await database.loadCapsule(contract, src.add(new Fr(1)))).toEqual(valuesArray[2]); // dst[2]
|
|
534
|
-
expect(await database.loadCapsule(contract, src.add(new Fr(2)))).toEqual(valuesArray[2]); // src[2] (unchanged)
|
|
535
|
-
});
|
|
536
|
-
it('copying fails if any value is empty', async ()=>{
|
|
537
|
-
const src = new Fr(1);
|
|
538
|
-
const valuesArray = [
|
|
539
|
-
[
|
|
540
|
-
new Fr(42)
|
|
541
|
-
],
|
|
542
|
-
[
|
|
543
|
-
new Fr(1337)
|
|
544
|
-
],
|
|
545
|
-
[
|
|
546
|
-
new Fr(13)
|
|
547
|
-
]
|
|
548
|
-
];
|
|
549
|
-
await database.storeCapsule(contract, src, valuesArray[0]);
|
|
550
|
-
// We skip src[1]
|
|
551
|
-
await database.storeCapsule(contract, src.add(new Fr(2)), valuesArray[2]);
|
|
552
|
-
const dst = new Fr(5);
|
|
553
|
-
await expect(database.copyCapsule(contract, src, dst, 3)).rejects.toThrow('Attempted to copy empty slot');
|
|
554
|
-
});
|
|
555
|
-
});
|
|
556
|
-
});
|
|
557
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { Fr, type Point } from '@aztec/foundation/fields';
|
|
2
|
-
import { type LogFn } from '@aztec/foundation/log';
|
|
3
|
-
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
4
|
-
import { type ContractArtifact } from '@aztec/stdlib/abi';
|
|
5
|
-
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
-
import type { InBlock } from '@aztec/stdlib/block';
|
|
7
|
-
import { CompleteAddress, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
8
|
-
import type { IndexedTaggingSecret } from '@aztec/stdlib/logs';
|
|
9
|
-
import { type NotesFilter } from '@aztec/stdlib/note';
|
|
10
|
-
import { BlockHeader } from '@aztec/stdlib/tx';
|
|
11
|
-
import type { PxeDatabase } from './interfaces/pxe_database.js';
|
|
12
|
-
import { NoteDao } from './note_dao.js';
|
|
13
|
-
/**
|
|
14
|
-
* A PXE database backed by LMDB.
|
|
15
|
-
*/
|
|
16
|
-
export declare class KVPxeDatabase implements PxeDatabase {
|
|
17
|
-
#private;
|
|
18
|
-
private db;
|
|
19
|
-
static readonly SCHEMA_VERSION = 1;
|
|
20
|
-
debug: LogFn;
|
|
21
|
-
protected constructor(db: AztecAsyncKVStore);
|
|
22
|
-
static create(db: AztecAsyncKVStore): Promise<KVPxeDatabase>;
|
|
23
|
-
getContract(address: AztecAddress): Promise<(ContractInstanceWithAddress & ContractArtifact) | undefined>;
|
|
24
|
-
addContractArtifact(id: Fr, contract: ContractArtifact): Promise<void>;
|
|
25
|
-
getContractArtifact(id: Fr): Promise<ContractArtifact | undefined>;
|
|
26
|
-
addContractInstance(contract: ContractInstanceWithAddress): Promise<void>;
|
|
27
|
-
getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
|
|
28
|
-
getContractsAddresses(): Promise<AztecAddress[]>;
|
|
29
|
-
addAuthWitness(messageHash: Fr, witness: Fr[]): Promise<void>;
|
|
30
|
-
getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
|
|
31
|
-
addNote(note: NoteDao, scope?: AztecAddress): Promise<void>;
|
|
32
|
-
addNotes(notes: NoteDao[], scope?: AztecAddress): Promise<void>;
|
|
33
|
-
removeNotesAfter(blockNumber: number): Promise<void>;
|
|
34
|
-
unnullifyNotesAfter(blockNumber: number): Promise<void>;
|
|
35
|
-
getNotes(filter: NotesFilter): Promise<NoteDao[]>;
|
|
36
|
-
removeNullifiedNotes(nullifiers: InBlock<Fr>[], accountAddressPoint: Point): Promise<NoteDao[]>;
|
|
37
|
-
addNullifiedNote(note: NoteDao): Promise<void>;
|
|
38
|
-
setHeader(header: BlockHeader): Promise<void>;
|
|
39
|
-
getBlockNumber(): Promise<number | undefined>;
|
|
40
|
-
getBlockHeader(): Promise<BlockHeader>;
|
|
41
|
-
addCompleteAddress(completeAddress: CompleteAddress): Promise<boolean>;
|
|
42
|
-
getCompleteAddress(account: AztecAddress): Promise<CompleteAddress | undefined>;
|
|
43
|
-
getCompleteAddresses(): Promise<CompleteAddress[]>;
|
|
44
|
-
addSenderAddress(address: AztecAddress): Promise<boolean>;
|
|
45
|
-
getSenderAddresses(): Promise<AztecAddress[]>;
|
|
46
|
-
removeSenderAddress(address: AztecAddress): Promise<boolean>;
|
|
47
|
-
estimateSize(): Promise<number>;
|
|
48
|
-
setTaggingSecretsIndexesAsSender(indexedSecrets: IndexedTaggingSecret[]): Promise<void>;
|
|
49
|
-
setTaggingSecretsIndexesAsRecipient(indexedSecrets: IndexedTaggingSecret[]): Promise<void>;
|
|
50
|
-
getTaggingSecretsIndexesAsRecipient(appTaggingSecrets: Fr[]): Promise<number[]>;
|
|
51
|
-
getTaggingSecretsIndexesAsSender(appTaggingSecrets: Fr[]): Promise<number[]>;
|
|
52
|
-
resetNoteSyncData(): Promise<void>;
|
|
53
|
-
storeCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[]): Promise<void>;
|
|
54
|
-
loadCapsule(contractAddress: AztecAddress, slot: Fr): Promise<Fr[] | null>;
|
|
55
|
-
deleteCapsule(contractAddress: AztecAddress, slot: Fr): Promise<void>;
|
|
56
|
-
copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void>;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=kv_pxe_database.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kv_pxe_database.d.ts","sourceRoot":"","sources":["../../src/database/kv_pxe_database.ts"],"names":[],"mappings":"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"}
|