@aztec/sequencer-client 0.34.0 → 0.35.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/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +3 -3
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +84 -7
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +4 -3
- package/dest/index.d.ts +0 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -2
- package/dest/sequencer/sequencer.d.ts +6 -7
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +10 -11
- package/dest/tx_validator/aggregate_tx_validator.d.ts +7 -0
- package/dest/tx_validator/aggregate_tx_validator.d.ts.map +1 -0
- package/dest/tx_validator/aggregate_tx_validator.js +23 -0
- package/dest/tx_validator/double_spend_validator.d.ts +11 -0
- package/dest/tx_validator/double_spend_validator.d.ts.map +1 -0
- package/dest/tx_validator/double_spend_validator.js +50 -0
- package/dest/tx_validator/gas_validator.d.ts +12 -0
- package/dest/tx_validator/gas_validator.d.ts.map +1 -0
- package/dest/tx_validator/gas_validator.js +62 -0
- package/dest/tx_validator/metadata_validator.d.ts +8 -0
- package/dest/tx_validator/metadata_validator.d.ts.map +1 -0
- package/dest/tx_validator/metadata_validator.js +50 -0
- package/dest/tx_validator/phases_validator.d.ts +13 -0
- package/dest/tx_validator/phases_validator.d.ts.map +1 -0
- package/dest/tx_validator/phases_validator.js +73 -0
- package/dest/tx_validator/tx_validator_factory.d.ts +13 -0
- package/dest/tx_validator/tx_validator_factory.d.ts.map +1 -0
- package/dest/tx_validator/tx_validator_factory.js +21 -0
- package/package.json +14 -13
- package/src/client/sequencer-client.ts +2 -3
- package/src/config.ts +93 -7
- package/src/global_variable_builder/global_builder.ts +3 -2
- package/src/index.ts +0 -1
- package/src/sequencer/sequencer.ts +27 -20
- package/src/tx_validator/aggregate_tx_validator.ts +24 -0
- package/src/tx_validator/double_spend_validator.ts +65 -0
- package/src/tx_validator/gas_validator.ts +81 -0
- package/src/tx_validator/metadata_validator.ts +60 -0
- package/src/tx_validator/phases_validator.ts +101 -0
- package/src/tx_validator/tx_validator_factory.ts +37 -0
- package/dest/sequencer/abstract_phase_manager.d.ts +0 -77
- package/dest/sequencer/abstract_phase_manager.d.ts.map +0 -1
- package/dest/sequencer/abstract_phase_manager.js +0 -307
- package/dest/sequencer/app_logic_phase_manager.d.ts +0 -28
- package/dest/sequencer/app_logic_phase_manager.d.ts.map +0 -1
- package/dest/sequencer/app_logic_phase_manager.js +0 -41
- package/dest/sequencer/hints_builder.d.ts +0 -23
- package/dest/sequencer/hints_builder.d.ts.map +0 -1
- package/dest/sequencer/hints_builder.js +0 -62
- package/dest/sequencer/phase_manager_factory.d.ts +0 -18
- package/dest/sequencer/phase_manager_factory.d.ts.map +0 -1
- package/dest/sequencer/phase_manager_factory.js +0 -56
- package/dest/sequencer/public_processor.d.ts +0 -54
- package/dest/sequencer/public_processor.d.ts.map +0 -1
- package/dest/sequencer/public_processor.js +0 -142
- package/dest/sequencer/setup_phase_manager.d.ts +0 -28
- package/dest/sequencer/setup_phase_manager.d.ts.map +0 -1
- package/dest/sequencer/setup_phase_manager.js +0 -30
- package/dest/sequencer/tail_phase_manager.d.ts +0 -29
- package/dest/sequencer/tail_phase_manager.d.ts.map +0 -1
- package/dest/sequencer/tail_phase_manager.js +0 -52
- package/dest/sequencer/teardown_phase_manager.d.ts +0 -28
- package/dest/sequencer/teardown_phase_manager.d.ts.map +0 -1
- package/dest/sequencer/teardown_phase_manager.js +0 -30
- package/dest/sequencer/tx_validator.d.ts +0 -29
- package/dest/sequencer/tx_validator.d.ts.map +0 -1
- package/dest/sequencer/tx_validator.js +0 -174
- package/dest/sequencer/tx_validator_factory.d.ts +0 -12
- package/dest/sequencer/tx_validator_factory.d.ts.map +0 -1
- package/dest/sequencer/tx_validator_factory.js +0 -17
- package/dest/sequencer/utils.d.ts +0 -8
- package/dest/sequencer/utils.d.ts.map +0 -1
- package/dest/sequencer/utils.js +0 -29
- package/dest/simulator/index.d.ts +0 -31
- package/dest/simulator/index.d.ts.map +0 -1
- package/dest/simulator/index.js +0 -2
- package/dest/simulator/public_executor.d.ts +0 -79
- package/dest/simulator/public_executor.d.ts.map +0 -1
- package/dest/simulator/public_executor.js +0 -198
- package/dest/simulator/public_kernel.d.ts +0 -37
- package/dest/simulator/public_kernel.d.ts.map +0 -1
- package/dest/simulator/public_kernel.js +0 -97
- package/src/sequencer/abstract_phase_manager.ts +0 -549
- package/src/sequencer/app_logic_phase_manager.ts +0 -62
- package/src/sequencer/hints_builder.ts +0 -119
- package/src/sequencer/phase_manager_factory.ts +0 -126
- package/src/sequencer/public_processor.ts +0 -209
- package/src/sequencer/setup_phase_manager.ts +0 -50
- package/src/sequencer/tail_phase_manager.ts +0 -111
- package/src/sequencer/teardown_phase_manager.ts +0 -50
- package/src/sequencer/tx_validator.ts +0 -265
- package/src/sequencer/tx_validator_factory.ts +0 -32
- package/src/sequencer/utils.ts +0 -31
- package/src/simulator/index.ts +0 -36
- package/src/simulator/public_executor.ts +0 -267
- package/src/simulator/public_kernel.ts +0 -139
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { type BlockProver, type FailedTx, type ProcessedTx, Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type GlobalVariables, type Header } from '@aztec/circuits.js';
|
|
3
|
-
import { type ProcessReturnValues } from '@aztec/foundation/abi';
|
|
4
|
-
import { PublicExecutor, type PublicStateDB, type SimulationProvider } from '@aztec/simulator';
|
|
5
|
-
import { type ContractDataSource } from '@aztec/types/contracts';
|
|
6
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
7
|
-
import { type PublicKernelCircuitSimulator } from '../simulator/index.js';
|
|
8
|
-
import { ContractsDataSourcePublicDB } from '../simulator/public_executor.js';
|
|
9
|
-
import { type TxValidator } from './tx_validator.js';
|
|
10
|
-
/**
|
|
11
|
-
* Creates new instances of PublicProcessor given the provided merkle tree db and contract data source.
|
|
12
|
-
*/
|
|
13
|
-
export declare class PublicProcessorFactory {
|
|
14
|
-
private merkleTree;
|
|
15
|
-
private contractDataSource;
|
|
16
|
-
private simulator;
|
|
17
|
-
constructor(merkleTree: MerkleTreeOperations, contractDataSource: ContractDataSource, simulator: SimulationProvider);
|
|
18
|
-
/**
|
|
19
|
-
* Creates a new instance of a PublicProcessor.
|
|
20
|
-
* @param historicalHeader - The header of a block previous to the one in which the tx is included.
|
|
21
|
-
* @param globalVariables - The global variables for the block being processed.
|
|
22
|
-
* @param newContracts - Provides access to contract bytecode for public executions.
|
|
23
|
-
* @returns A new instance of a PublicProcessor.
|
|
24
|
-
*/
|
|
25
|
-
create(historicalHeader: Header | undefined, globalVariables: GlobalVariables): Promise<PublicProcessor>;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Converts Txs lifted from the P2P module into ProcessedTx objects by executing
|
|
29
|
-
* any public function calls in them. Txs with private calls only are unaffected.
|
|
30
|
-
*/
|
|
31
|
-
export declare class PublicProcessor {
|
|
32
|
-
protected db: MerkleTreeOperations;
|
|
33
|
-
protected publicExecutor: PublicExecutor;
|
|
34
|
-
protected publicKernel: PublicKernelCircuitSimulator;
|
|
35
|
-
protected globalVariables: GlobalVariables;
|
|
36
|
-
protected historicalHeader: Header;
|
|
37
|
-
protected publicContractsDB: ContractsDataSourcePublicDB;
|
|
38
|
-
protected publicStateDB: PublicStateDB;
|
|
39
|
-
private log;
|
|
40
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB, log?: import("@aztec/foundation/log").Logger);
|
|
41
|
-
/**
|
|
42
|
-
* Run each tx through the public circuit and the public kernel circuit if needed.
|
|
43
|
-
* @param txs - Txs to process.
|
|
44
|
-
* @returns The list of processed txs with their circuit simulation outputs.
|
|
45
|
-
*/
|
|
46
|
-
process(txs: Tx[], maxTransactions?: number, blockProver?: BlockProver, txValidator?: TxValidator): Promise<[ProcessedTx[], FailedTx[], ProcessReturnValues[]]>;
|
|
47
|
-
/**
|
|
48
|
-
* Makes an empty processed tx. Useful for padding a block to a power of two number of txs.
|
|
49
|
-
* @returns A processed tx with empty data.
|
|
50
|
-
*/
|
|
51
|
-
makeEmptyProcessedTx(): ProcessedTx;
|
|
52
|
-
private processTxWithPublicCalls;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=public_processor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../src/sequencer/public_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,WAAW,EAEhB,EAAE,EAKH,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAkC,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAoC,MAAM,iCAAiC,CAAC;AAIhH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,SAAS;gBAFT,UAAU,EAAE,oBAAoB,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,SAAS,EAAE,kBAAkB;IAGvC;;;;;;OAMG;IACU,MAAM,CACjB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,eAAe,CAAC;CAiB5B;AAED;;;GAGG;AACH,qBAAa,eAAe;IAExB,SAAS,CAAC,EAAE,EAAE,oBAAoB;IAClC,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,YAAY,EAAE,4BAA4B;IACpD,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAClC,SAAS,CAAC,iBAAiB,EAAE,2BAA2B;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa;IAEtC,OAAO,CAAC,GAAG;gBARD,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,aAAa,EAE9B,GAAG,yCAAwD;IAGrE;;;;OAIG;IACU,OAAO,CAClB,GAAG,EAAE,EAAE,EAAE,EACT,eAAe,SAAa,EAC5B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAiD9D;;;OAGG;IACI,oBAAoB,IAAI,WAAW;YAK5B,wBAAwB;CAyDvC"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { Tx, makeEmptyProcessedTx, makeProcessedTx, toTxEffect, validateProcessedTx, } from '@aztec/circuit-types';
|
|
2
|
-
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
|
-
import { Timer } from '@aztec/foundation/timer';
|
|
4
|
-
import { PublicExecutor } from '@aztec/simulator';
|
|
5
|
-
import { ContractsDataSourcePublicDB, WorldStateDB, WorldStatePublicDB } from '../simulator/public_executor.js';
|
|
6
|
-
import { RealPublicKernelCircuitSimulator } from '../simulator/public_kernel.js';
|
|
7
|
-
import { PublicKernelPhase } from './abstract_phase_manager.js';
|
|
8
|
-
import { PhaseManagerFactory } from './phase_manager_factory.js';
|
|
9
|
-
/**
|
|
10
|
-
* Creates new instances of PublicProcessor given the provided merkle tree db and contract data source.
|
|
11
|
-
*/
|
|
12
|
-
export class PublicProcessorFactory {
|
|
13
|
-
constructor(merkleTree, contractDataSource, simulator) {
|
|
14
|
-
this.merkleTree = merkleTree;
|
|
15
|
-
this.contractDataSource = contractDataSource;
|
|
16
|
-
this.simulator = simulator;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Creates a new instance of a PublicProcessor.
|
|
20
|
-
* @param historicalHeader - The header of a block previous to the one in which the tx is included.
|
|
21
|
-
* @param globalVariables - The global variables for the block being processed.
|
|
22
|
-
* @param newContracts - Provides access to contract bytecode for public executions.
|
|
23
|
-
* @returns A new instance of a PublicProcessor.
|
|
24
|
-
*/
|
|
25
|
-
async create(historicalHeader, globalVariables) {
|
|
26
|
-
historicalHeader = historicalHeader ?? (await this.merkleTree.buildInitialHeader());
|
|
27
|
-
const publicContractsDB = new ContractsDataSourcePublicDB(this.contractDataSource);
|
|
28
|
-
const worldStatePublicDB = new WorldStatePublicDB(this.merkleTree);
|
|
29
|
-
const worldStateDB = new WorldStateDB(this.merkleTree);
|
|
30
|
-
const publicExecutor = new PublicExecutor(worldStatePublicDB, publicContractsDB, worldStateDB, historicalHeader);
|
|
31
|
-
return new PublicProcessor(this.merkleTree, publicExecutor, new RealPublicKernelCircuitSimulator(this.simulator), globalVariables, historicalHeader, publicContractsDB, worldStatePublicDB);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Converts Txs lifted from the P2P module into ProcessedTx objects by executing
|
|
36
|
-
* any public function calls in them. Txs with private calls only are unaffected.
|
|
37
|
-
*/
|
|
38
|
-
export class PublicProcessor {
|
|
39
|
-
constructor(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB, log = createDebugLogger('aztec:sequencer:public-processor')) {
|
|
40
|
-
this.db = db;
|
|
41
|
-
this.publicExecutor = publicExecutor;
|
|
42
|
-
this.publicKernel = publicKernel;
|
|
43
|
-
this.globalVariables = globalVariables;
|
|
44
|
-
this.historicalHeader = historicalHeader;
|
|
45
|
-
this.publicContractsDB = publicContractsDB;
|
|
46
|
-
this.publicStateDB = publicStateDB;
|
|
47
|
-
this.log = log;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Run each tx through the public circuit and the public kernel circuit if needed.
|
|
51
|
-
* @param txs - Txs to process.
|
|
52
|
-
* @returns The list of processed txs with their circuit simulation outputs.
|
|
53
|
-
*/
|
|
54
|
-
async process(txs, maxTransactions = txs.length, blockProver, txValidator) {
|
|
55
|
-
// The processor modifies the tx objects in place, so we need to clone them.
|
|
56
|
-
txs = txs.map(tx => Tx.clone(tx));
|
|
57
|
-
const result = [];
|
|
58
|
-
const failed = [];
|
|
59
|
-
const returns = [];
|
|
60
|
-
for (const tx of txs) {
|
|
61
|
-
// only process up to the limit of the block
|
|
62
|
-
if (result.length >= maxTransactions) {
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
try {
|
|
66
|
-
const [processedTx, returnValues] = !tx.hasPublicCalls()
|
|
67
|
-
? [makeProcessedTx(tx, tx.data.toKernelCircuitPublicInputs(), tx.proof)]
|
|
68
|
-
: await this.processTxWithPublicCalls(tx);
|
|
69
|
-
validateProcessedTx(processedTx);
|
|
70
|
-
// Re-validate the transaction
|
|
71
|
-
if (txValidator) {
|
|
72
|
-
// Only accept processed transactions that are not double-spends,
|
|
73
|
-
// public functions emitting nullifiers would pass earlier check but fail here.
|
|
74
|
-
// Note that we're checking all nullifiers generated in the private execution twice,
|
|
75
|
-
// we could store the ones already checked and skip them here as an optimization.
|
|
76
|
-
const [_, invalid] = await txValidator.validateTxs([processedTx]);
|
|
77
|
-
if (invalid.length) {
|
|
78
|
-
throw new Error(`Transaction ${invalid[0].hash} invalid after processing public functions`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// if we were given a prover then send the transaction to it for proving
|
|
82
|
-
if (blockProver) {
|
|
83
|
-
await blockProver.addNewTx(processedTx);
|
|
84
|
-
}
|
|
85
|
-
result.push(processedTx);
|
|
86
|
-
returns.push(returnValues);
|
|
87
|
-
}
|
|
88
|
-
catch (err) {
|
|
89
|
-
const errorMessage = err instanceof Error ? err.message : 'Unknown error';
|
|
90
|
-
this.log.warn(`Failed to process tx ${tx.getTxHash()}: ${errorMessage}`);
|
|
91
|
-
failed.push({
|
|
92
|
-
tx,
|
|
93
|
-
error: err instanceof Error ? err : new Error(errorMessage),
|
|
94
|
-
});
|
|
95
|
-
returns.push([]);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return [result, failed, returns];
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Makes an empty processed tx. Useful for padding a block to a power of two number of txs.
|
|
102
|
-
* @returns A processed tx with empty data.
|
|
103
|
-
*/
|
|
104
|
-
makeEmptyProcessedTx() {
|
|
105
|
-
const { chainId, version } = this.globalVariables;
|
|
106
|
-
return makeEmptyProcessedTx(this.historicalHeader.clone(), chainId, version);
|
|
107
|
-
}
|
|
108
|
-
async processTxWithPublicCalls(tx) {
|
|
109
|
-
let returnValues = undefined;
|
|
110
|
-
let phase = PhaseManagerFactory.phaseFromTx(tx, this.db, this.publicExecutor, this.publicKernel, this.globalVariables, this.historicalHeader, this.publicContractsDB, this.publicStateDB);
|
|
111
|
-
this.log.debug(`Beginning processing in phase ${phase?.phase} for tx ${tx.getTxHash()}`);
|
|
112
|
-
let proof = tx.proof;
|
|
113
|
-
let publicKernelPublicInput = tx.data.toPublicKernelCircuitPublicInputs();
|
|
114
|
-
let finalKernelOutput;
|
|
115
|
-
let revertReason;
|
|
116
|
-
const timer = new Timer();
|
|
117
|
-
while (phase) {
|
|
118
|
-
const output = await phase.handle(tx, publicKernelPublicInput, proof);
|
|
119
|
-
if (phase.phase === PublicKernelPhase.APP_LOGIC) {
|
|
120
|
-
returnValues = output.returnValues;
|
|
121
|
-
}
|
|
122
|
-
publicKernelPublicInput = output.publicKernelOutput;
|
|
123
|
-
finalKernelOutput = output.finalKernelOutput;
|
|
124
|
-
proof = output.publicKernelProof;
|
|
125
|
-
revertReason ?? (revertReason = output.revertReason);
|
|
126
|
-
phase = PhaseManagerFactory.phaseFromOutput(publicKernelPublicInput, phase, this.db, this.publicExecutor, this.publicKernel, this.globalVariables, this.historicalHeader, this.publicContractsDB, this.publicStateDB);
|
|
127
|
-
}
|
|
128
|
-
if (!finalKernelOutput) {
|
|
129
|
-
throw new Error('Final public kernel was not executed.');
|
|
130
|
-
}
|
|
131
|
-
const processedTx = makeProcessedTx(tx, finalKernelOutput, proof, revertReason);
|
|
132
|
-
this.log.debug(`Processed public part of ${tx.getTxHash()}`, {
|
|
133
|
-
eventName: 'tx-sequencer-processing',
|
|
134
|
-
duration: timer.ms(),
|
|
135
|
-
effectsSize: toTxEffect(processedTx).toBuffer().length,
|
|
136
|
-
publicDataUpdateRequests: processedTx.data.end.publicDataUpdateRequests.filter(x => !x.leafSlot.isZero()).length ?? 0,
|
|
137
|
-
...tx.getStats(),
|
|
138
|
-
});
|
|
139
|
-
return [processedTx, returnValues];
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXF1ZW5jZXIvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0wsRUFBRSxFQUNGLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsVUFBVSxFQUNWLG1CQUFtQixHQUNwQixNQUFNLHNCQUFzQixDQUFDO0FBSTlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUErQyxNQUFNLGtCQUFrQixDQUFDO0FBSy9GLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoSCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRixPQUFPLEVBQTZCLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHakU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1UsVUFBZ0MsRUFDaEMsa0JBQXNDLEVBQ3RDLFNBQTZCO1FBRjdCLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsY0FBUyxHQUFULFNBQVMsQ0FBb0I7SUFDcEMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQ2pCLGdCQUFvQyxFQUNwQyxlQUFnQztRQUVoQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFFcEYsTUFBTSxpQkFBaUIsR0FBRyxJQUFJ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
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type GlobalVariables, type Header, type Proof, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
-
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
4
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
5
|
-
import { type PublicKernelCircuitSimulator } from '../simulator/index.js';
|
|
6
|
-
import { type ContractsDataSourcePublicDB } from '../simulator/public_executor.js';
|
|
7
|
-
import { AbstractPhaseManager, PublicKernelPhase } from './abstract_phase_manager.js';
|
|
8
|
-
/**
|
|
9
|
-
* The phase manager responsible for performing the fee preparation phase.
|
|
10
|
-
*/
|
|
11
|
-
export declare class SetupPhaseManager extends AbstractPhaseManager {
|
|
12
|
-
protected db: MerkleTreeOperations;
|
|
13
|
-
protected publicExecutor: PublicExecutor;
|
|
14
|
-
protected publicKernel: PublicKernelCircuitSimulator;
|
|
15
|
-
protected globalVariables: GlobalVariables;
|
|
16
|
-
protected historicalHeader: Header;
|
|
17
|
-
protected publicContractsDB: ContractsDataSourcePublicDB;
|
|
18
|
-
protected publicStateDB: PublicStateDB;
|
|
19
|
-
phase: PublicKernelPhase;
|
|
20
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB, phase?: PublicKernelPhase);
|
|
21
|
-
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousPublicKernelProof: Proof): Promise<{
|
|
22
|
-
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
23
|
-
publicKernelProof: Proof;
|
|
24
|
-
revertReason: import("@aztec/circuit-types").SimulationError | undefined;
|
|
25
|
-
returnValues: undefined;
|
|
26
|
-
}>;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=setup_phase_manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup_phase_manager.d.ts","sourceRoot":"","sources":["../../src/sequencer/setup_phase_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,+BAA+B,EACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEtF;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,oBAAoB;IAEvD,SAAS,CAAC,EAAE,EAAE,oBAAoB;IAClC,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,YAAY,EAAE,4BAA4B;IACpD,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAClC,SAAS,CAAC,iBAAiB,EAAE,2BAA2B;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa;IAC/B,KAAK,EAAE,iBAAiB;gBAPrB,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,aAAa,EAC/B,KAAK,GAAE,iBAA2C;IAK5C,MAAM,CACnB,EAAE,EAAE,EAAE,EACN,0BAA0B,EAAE,+BAA+B,EAC3D,yBAAyB,EAAE,KAAK;;;;;;CAenC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { AbstractPhaseManager, PublicKernelPhase } from './abstract_phase_manager.js';
|
|
2
|
-
/**
|
|
3
|
-
* The phase manager responsible for performing the fee preparation phase.
|
|
4
|
-
*/
|
|
5
|
-
export class SetupPhaseManager extends AbstractPhaseManager {
|
|
6
|
-
constructor(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB, phase = PublicKernelPhase.SETUP) {
|
|
7
|
-
super(db, publicExecutor, publicKernel, globalVariables, historicalHeader, phase);
|
|
8
|
-
this.db = db;
|
|
9
|
-
this.publicExecutor = publicExecutor;
|
|
10
|
-
this.publicKernel = publicKernel;
|
|
11
|
-
this.globalVariables = globalVariables;
|
|
12
|
-
this.historicalHeader = historicalHeader;
|
|
13
|
-
this.publicContractsDB = publicContractsDB;
|
|
14
|
-
this.publicStateDB = publicStateDB;
|
|
15
|
-
this.phase = phase;
|
|
16
|
-
}
|
|
17
|
-
async handle(tx, previousPublicKernelOutput, previousPublicKernelProof) {
|
|
18
|
-
this.log.verbose(`Processing tx ${tx.getTxHash()}`);
|
|
19
|
-
const [publicKernelOutput, publicKernelProof, newUnencryptedFunctionLogs, revertReason] = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousPublicKernelProof).catch(
|
|
20
|
-
// the abstract phase manager throws if simulation gives error in a non-revertible phase
|
|
21
|
-
async (err) => {
|
|
22
|
-
await this.publicStateDB.rollbackToCommit();
|
|
23
|
-
throw err;
|
|
24
|
-
});
|
|
25
|
-
tx.unencryptedLogs.addFunctionLogs(newUnencryptedFunctionLogs);
|
|
26
|
-
await this.publicStateDB.checkpoint();
|
|
27
|
-
return { publicKernelOutput, publicKernelProof, revertReason, returnValues: undefined };
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfcGhhc2VfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXF1ZW5jZXIvc2V0dXBfcGhhc2VfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV0Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxvQkFBb0I7SUFDekQsWUFDWSxFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDeEIsaUJBQThDLEVBQzlDLGFBQTRCLEVBQy9CLFFBQTJCLGlCQUFpQixDQUFDLEtBQUs7UUFFekQsS0FBSyxDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQVR4RSxPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQThCO1FBQzFDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE2QjtRQUM5QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMvQixVQUFLLEdBQUwsS0FBSyxDQUE2QztJQUczRCxDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsRUFBTSxFQUNOLDBCQUEyRCxFQUMzRCx5QkFBZ0M7UUFFaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEQsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLFlBQVksQ0FBQyxHQUNyRixNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxLQUFLO1FBQ3BHLHdGQUF3RjtRQUN4RixLQUFLLEVBQUMsR0FBRyxFQUFDLEVBQUU7WUFDVixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FDRixDQUFDO1FBQ0osRUFBRSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMvRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDMUYsQ0FBQztDQUNGIn0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type GlobalVariables, type Header, type KernelCircuitPublicInputs, type Proof, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
-
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
4
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
5
|
-
import { type PublicKernelCircuitSimulator } from '../simulator/index.js';
|
|
6
|
-
import { type ContractsDataSourcePublicDB } from '../simulator/public_executor.js';
|
|
7
|
-
import { AbstractPhaseManager, PublicKernelPhase } from './abstract_phase_manager.js';
|
|
8
|
-
export declare class TailPhaseManager extends AbstractPhaseManager {
|
|
9
|
-
protected db: MerkleTreeOperations;
|
|
10
|
-
protected publicExecutor: PublicExecutor;
|
|
11
|
-
protected publicKernel: PublicKernelCircuitSimulator;
|
|
12
|
-
protected globalVariables: GlobalVariables;
|
|
13
|
-
protected historicalHeader: Header;
|
|
14
|
-
protected publicContractsDB: ContractsDataSourcePublicDB;
|
|
15
|
-
protected publicStateDB: PublicStateDB;
|
|
16
|
-
readonly phase: PublicKernelPhase;
|
|
17
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB, phase?: PublicKernelPhase);
|
|
18
|
-
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousPublicKernelProof: Proof): Promise<{
|
|
19
|
-
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
20
|
-
finalKernelOutput: KernelCircuitPublicInputs;
|
|
21
|
-
publicKernelProof: Proof;
|
|
22
|
-
revertReason: undefined;
|
|
23
|
-
returnValues: undefined;
|
|
24
|
-
}>;
|
|
25
|
-
private runTailKernelCircuit;
|
|
26
|
-
private simulate;
|
|
27
|
-
private sortNoteHashes;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=tail_phase_manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tail_phase_manager.d.ts","sourceRoot":"","sources":["../../src/sequencer/tail_phase_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,yBAAyB,EAE9B,KAAK,KAAK,EACV,KAAK,+BAA+B,EAMrC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEtF,qBAAa,gBAAiB,SAAQ,oBAAoB;IAEtD,SAAS,CAAC,EAAE,EAAE,oBAAoB;IAClC,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,YAAY,EAAE,4BAA4B;IACpD,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAClC,SAAS,CAAC,iBAAiB,EAAE,2BAA2B;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa;aACtB,KAAK,EAAE,iBAAiB;gBAP9B,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,aAAa,EACtB,KAAK,GAAE,iBAA0C;IAK7D,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,KAAK;;;;;;;YAyBpG,oBAAoB;YAiBpB,QAAQ;IAyBtB,OAAO,CAAC,cAAc;CAMvB"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { MAX_NEW_NOTE_HASHES_PER_TX, PublicKernelTailCircuitPrivateInputs, makeEmptyProof, mergeAccumulatedData, sortByCounter, } from '@aztec/circuits.js';
|
|
2
|
-
import { AbstractPhaseManager, PublicKernelPhase } from './abstract_phase_manager.js';
|
|
3
|
-
export class TailPhaseManager extends AbstractPhaseManager {
|
|
4
|
-
constructor(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB, phase = PublicKernelPhase.TAIL) {
|
|
5
|
-
super(db, publicExecutor, publicKernel, globalVariables, historicalHeader, phase);
|
|
6
|
-
this.db = db;
|
|
7
|
-
this.publicExecutor = publicExecutor;
|
|
8
|
-
this.publicKernel = publicKernel;
|
|
9
|
-
this.globalVariables = globalVariables;
|
|
10
|
-
this.historicalHeader = historicalHeader;
|
|
11
|
-
this.publicContractsDB = publicContractsDB;
|
|
12
|
-
this.publicStateDB = publicStateDB;
|
|
13
|
-
this.phase = phase;
|
|
14
|
-
}
|
|
15
|
-
async handle(tx, previousPublicKernelOutput, previousPublicKernelProof) {
|
|
16
|
-
this.log.verbose(`Processing tx ${tx.getTxHash()}`);
|
|
17
|
-
const [finalKernelOutput, publicKernelProof] = await this.runTailKernelCircuit(previousPublicKernelOutput, previousPublicKernelProof).catch(
|
|
18
|
-
// the abstract phase manager throws if simulation gives error in non-revertible phase
|
|
19
|
-
async (err) => {
|
|
20
|
-
await this.publicStateDB.rollbackToCommit();
|
|
21
|
-
throw err;
|
|
22
|
-
});
|
|
23
|
-
// commit the state updates from this transaction
|
|
24
|
-
await this.publicStateDB.commit();
|
|
25
|
-
return {
|
|
26
|
-
publicKernelOutput: previousPublicKernelOutput,
|
|
27
|
-
finalKernelOutput,
|
|
28
|
-
publicKernelProof,
|
|
29
|
-
revertReason: undefined,
|
|
30
|
-
returnValues: undefined,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
async runTailKernelCircuit(previousOutput, previousProof) {
|
|
34
|
-
const output = await this.simulate(previousOutput, previousProof);
|
|
35
|
-
// Temporary hack. Should sort them in the tail circuit.
|
|
36
|
-
const noteHashes = mergeAccumulatedData(MAX_NEW_NOTE_HASHES_PER_TX, previousOutput.endNonRevertibleData.newNoteHashes, previousOutput.end.newNoteHashes);
|
|
37
|
-
output.end.newNoteHashes = this.sortNoteHashes(noteHashes);
|
|
38
|
-
return [output, makeEmptyProof()];
|
|
39
|
-
}
|
|
40
|
-
async simulate(previousOutput, previousProof) {
|
|
41
|
-
const previousKernel = this.getPreviousKernelData(previousOutput, previousProof);
|
|
42
|
-
const { validationRequests, endNonRevertibleData, end } = previousOutput;
|
|
43
|
-
const nullifierReadRequestHints = await this.hintsBuilder.getNullifierReadRequestHints(validationRequests.nullifierReadRequests, endNonRevertibleData.newNullifiers, end.newNullifiers);
|
|
44
|
-
const nullifierNonExistentReadRequestHints = await this.hintsBuilder.getNullifierNonExistentReadRequestHints(validationRequests.nullifierNonExistentReadRequests, endNonRevertibleData.newNullifiers, end.newNullifiers);
|
|
45
|
-
const inputs = new PublicKernelTailCircuitPrivateInputs(previousKernel, nullifierReadRequestHints, nullifierNonExistentReadRequestHints);
|
|
46
|
-
return this.publicKernel.publicKernelCircuitTail(inputs);
|
|
47
|
-
}
|
|
48
|
-
sortNoteHashes(noteHashes) {
|
|
49
|
-
return sortByCounter(noteHashes.map(n => ({ ...n, counter: n.counter.toNumber() }))).map(n => n.value);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpbF9waGFzZV9tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcXVlbmNlci90YWlsX3BoYXNlX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUtMLDBCQUEwQixFQUcxQixvQ0FBb0MsRUFFcEMsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixhQUFhLEdBQ2QsTUFBTSxvQkFBb0IsQ0FBQztBQU81QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV0RixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBQ3hELFlBQ1ksRUFBd0IsRUFDeEIsY0FBOEIsRUFDOUIsWUFBMEMsRUFDMUMsZUFBZ0MsRUFDaEMsZ0JBQXdCLEVBQ3hCLGlCQUE4QyxFQUM5QyxhQUE0QixFQUN0QixRQUEyQixpQkFBaUIsQ0FBQyxJQUFJO1FBRWpFLEtBQUssQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFUeEUsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUE4QjtRQUMxQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBNEM7SUFHbkUsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBTSxFQUFFLDBCQUEyRCxFQUFFLHlCQUFnQztRQUNoSCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNw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
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type GlobalVariables, type Header, type Proof, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
-
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
4
|
-
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
5
|
-
import { type PublicKernelCircuitSimulator } from '../simulator/index.js';
|
|
6
|
-
import { type ContractsDataSourcePublicDB } from '../simulator/public_executor.js';
|
|
7
|
-
import { AbstractPhaseManager, PublicKernelPhase } from './abstract_phase_manager.js';
|
|
8
|
-
/**
|
|
9
|
-
* The phase manager responsible for performing the fee preparation phase.
|
|
10
|
-
*/
|
|
11
|
-
export declare class TeardownPhaseManager extends AbstractPhaseManager {
|
|
12
|
-
protected db: MerkleTreeOperations;
|
|
13
|
-
protected publicExecutor: PublicExecutor;
|
|
14
|
-
protected publicKernel: PublicKernelCircuitSimulator;
|
|
15
|
-
protected globalVariables: GlobalVariables;
|
|
16
|
-
protected historicalHeader: Header;
|
|
17
|
-
protected publicContractsDB: ContractsDataSourcePublicDB;
|
|
18
|
-
protected publicStateDB: PublicStateDB;
|
|
19
|
-
phase: PublicKernelPhase;
|
|
20
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, publicContractsDB: ContractsDataSourcePublicDB, publicStateDB: PublicStateDB, phase?: PublicKernelPhase);
|
|
21
|
-
handle(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousPublicKernelProof: Proof): Promise<{
|
|
22
|
-
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
23
|
-
publicKernelProof: Proof;
|
|
24
|
-
revertReason: import("@aztec/circuit-types").SimulationError | undefined;
|
|
25
|
-
returnValues: undefined;
|
|
26
|
-
}>;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=teardown_phase_manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"teardown_phase_manager.d.ts","sourceRoot":"","sources":["../../src/sequencer/teardown_phase_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,+BAA+B,EACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEtF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,oBAAoB;IAE1D,SAAS,CAAC,EAAE,EAAE,oBAAoB;IAClC,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,YAAY,EAAE,4BAA4B;IACpD,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAClC,SAAS,CAAC,iBAAiB,EAAE,2BAA2B;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa;IAC/B,KAAK,EAAE,iBAAiB;gBAPrB,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,aAAa,EAC/B,KAAK,GAAE,iBAA8C;IAK/C,MAAM,CACnB,EAAE,EAAE,EAAE,EACN,0BAA0B,EAAE,+BAA+B,EAC3D,yBAAyB,EAAE,KAAK;;;;;;CAenC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { AbstractPhaseManager, PublicKernelPhase } from './abstract_phase_manager.js';
|
|
2
|
-
/**
|
|
3
|
-
* The phase manager responsible for performing the fee preparation phase.
|
|
4
|
-
*/
|
|
5
|
-
export class TeardownPhaseManager extends AbstractPhaseManager {
|
|
6
|
-
constructor(db, publicExecutor, publicKernel, globalVariables, historicalHeader, publicContractsDB, publicStateDB, phase = PublicKernelPhase.TEARDOWN) {
|
|
7
|
-
super(db, publicExecutor, publicKernel, globalVariables, historicalHeader, phase);
|
|
8
|
-
this.db = db;
|
|
9
|
-
this.publicExecutor = publicExecutor;
|
|
10
|
-
this.publicKernel = publicKernel;
|
|
11
|
-
this.globalVariables = globalVariables;
|
|
12
|
-
this.historicalHeader = historicalHeader;
|
|
13
|
-
this.publicContractsDB = publicContractsDB;
|
|
14
|
-
this.publicStateDB = publicStateDB;
|
|
15
|
-
this.phase = phase;
|
|
16
|
-
}
|
|
17
|
-
async handle(tx, previousPublicKernelOutput, previousPublicKernelProof) {
|
|
18
|
-
this.log.verbose(`Processing tx ${tx.getTxHash()}`);
|
|
19
|
-
const [publicKernelOutput, publicKernelProof, newUnencryptedFunctionLogs, revertReason] = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousPublicKernelProof).catch(
|
|
20
|
-
// the abstract phase manager throws if simulation gives error in a non-revertible phase
|
|
21
|
-
async (err) => {
|
|
22
|
-
await this.publicStateDB.rollbackToCommit();
|
|
23
|
-
throw err;
|
|
24
|
-
});
|
|
25
|
-
tx.unencryptedLogs.addFunctionLogs(newUnencryptedFunctionLogs);
|
|
26
|
-
await this.publicStateDB.checkpoint();
|
|
27
|
-
return { publicKernelOutput, publicKernelProof, revertReason, returnValues: undefined };
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd25fcGhhc2VfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXF1ZW5jZXIvdGVhcmRvd25fcGhhc2VfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV0Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDNUQsWUFDWSxFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDeEIsaUJBQThDLEVBQzlDLGFBQTRCLEVBQy9CLFFBQTJCLGlCQUFpQixDQUFDLFFBQVE7UUFFNUQsS0FBSyxDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQVR4RSxPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQThCO1FBQzFDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE2QjtRQUM5QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMvQixVQUFLLEdBQUwsS0FBSyxDQUFnRDtJQUc5RCxDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsRUFBTSxFQUNOLDBCQUEyRCxFQUMzRCx5QkFBZ0M7UUFFaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEQsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLFlBQVksQ0FBQyxHQUNyRixNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxLQUFLO1FBQ3BHLHdGQUF3RjtRQUN4RixLQUFLLEVBQUMsR0FBRyxFQUFDLEVBQUU7WUFDVixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FDRixDQUFDO1FBQ0osRUFBRSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMvRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDMUYsQ0FBQztDQUNGIn0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { type ProcessedTx, Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type AztecAddress, type EthAddress, Fr, type GlobalVariables } from '@aztec/circuits.js';
|
|
3
|
-
import { type Logger } from '@aztec/foundation/log';
|
|
4
|
-
import { type ContractDataSource } from '@aztec/types/contracts';
|
|
5
|
-
/** A source of what nullifiers have been committed to the state trees */
|
|
6
|
-
export interface NullifierSource {
|
|
7
|
-
getNullifierIndex: (nullifier: Fr) => Promise<bigint | undefined>;
|
|
8
|
-
}
|
|
9
|
-
/** Provides a view into public contract state */
|
|
10
|
-
export interface PublicStateSource {
|
|
11
|
-
storageRead: (contractAddress: AztecAddress, slot: Fr) => Promise<Fr>;
|
|
12
|
-
}
|
|
13
|
-
type FeeValidationConfig = {
|
|
14
|
-
gasPortalAddress: EthAddress;
|
|
15
|
-
allowedFeePaymentContractClasses: Fr[];
|
|
16
|
-
allowedFeePaymentContractInstances: AztecAddress[];
|
|
17
|
-
};
|
|
18
|
-
export declare class TxValidator {
|
|
19
|
-
#private;
|
|
20
|
-
constructor(nullifierSource: NullifierSource, publicStateSource: PublicStateSource, contractDataSource: ContractDataSource, globalVariables: GlobalVariables, feeValidationConfig: FeeValidationConfig, log?: Logger);
|
|
21
|
-
/**
|
|
22
|
-
* Validates a list of transactions.
|
|
23
|
-
* @param txs - The transactions to validate.
|
|
24
|
-
* @returns A tuple of valid and invalid transactions.
|
|
25
|
-
*/
|
|
26
|
-
validateTxs<T extends Tx | ProcessedTx>(txs: T[]): Promise<[validTxs: T[], invalidTxs: T[]]>;
|
|
27
|
-
}
|
|
28
|
-
export {};
|
|
29
|
-
//# sourceMappingURL=tx_validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tx_validator.d.ts","sourceRoot":"","sources":["../../src/sequencer/tx_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,EAAE,EACF,KAAK,eAAe,EAErB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACnE;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;CACvE;AAaD,KAAK,mBAAmB,GAAG;IACzB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,gCAAgC,EAAE,EAAE,EAAE,CAAC;IACvC,kCAAkC,EAAE,YAAY,EAAE,CAAC;CACpD,CAAC;AAEF,qBAAa,WAAW;;gBASpB,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,GAAG,SAAoD;IAUzD;;;;OAIG;IACU,WAAW,CAAC,CAAC,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;CAiM1G"}
|