@aztec/txe 5.0.0-rc.1 → 5.0.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/AuthRegistry-FSRZIMX6.js +3 -0
- package/dest/AuthRegistry-FSRZIMX6.js.map +7 -0
- package/dest/ContractClassRegistry-N6NA3SFA.js +3 -0
- package/dest/ContractClassRegistry-N6NA3SFA.js.map +7 -0
- package/dest/ContractInstanceRegistry-NADDSLGL.js +3 -0
- package/dest/ContractInstanceRegistry-NADDSLGL.js.map +7 -0
- package/dest/FeeJuice-QBH5JWJV.js +3 -0
- package/dest/FeeJuice-QBH5JWJV.js.map +7 -0
- package/dest/HandshakeRegistry-KKUEU7XW.js +3 -0
- package/dest/HandshakeRegistry-KKUEU7XW.js.map +7 -0
- package/dest/MultiCallEntrypoint-TGICA67H.js +3 -0
- package/dest/MultiCallEntrypoint-TGICA67H.js.map +7 -0
- package/dest/SchnorrAccount-J5T6OKR3.js +3 -0
- package/dest/SchnorrAccount-J5T6OKR3.js.map +7 -0
- package/dest/SchnorrInitializerlessAccount-OOES6Q4F.js +3 -0
- package/dest/SchnorrInitializerlessAccount-OOES6Q4F.js.map +7 -0
- package/dest/bin/index.js +1 -1
- package/dest/bin/oracle_test_server.js +2 -2
- package/dest/{chunk-UPW55EJX.js → chunk-PDOEF22H.js} +2 -2
- package/dest/{chunk-UPW55EJX.js.map → chunk-PDOEF22H.js.map} +3 -3
- package/dest/chunk-YP4ODNMQ.js +268 -0
- package/dest/chunk-YP4ODNMQ.js.map +7 -0
- package/dest/constants.d.ts +1 -1
- package/dest/constants.d.ts.map +1 -1
- package/dest/constants.js +1 -1
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +5 -3
- package/dest/metafile.json +9768 -8714
- package/dest/oracle/interfaces.d.ts +19 -10
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/tagging_secret_strategy.d.ts +12 -0
- package/dest/oracle/tagging_secret_strategy.d.ts.map +1 -0
- package/dest/oracle/tagging_secret_strategy.js +12 -0
- package/dest/oracle/test-resolver/default_fixtures.d.ts +9 -0
- package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
- package/dest/oracle/test-resolver/default_fixtures.js +207 -0
- package/dest/oracle/test-resolver/index.d.ts +1 -1
- package/dest/oracle/test-resolver/index.d.ts.map +1 -1
- package/dest/oracle/test-resolver/index.js +1 -2
- package/dest/oracle/test-resolver/resolver.d.ts +22 -8
- package/dest/oracle/test-resolver/resolver.d.ts.map +1 -1
- package/dest/oracle/test-resolver/resolver.js +100 -33
- package/dest/oracle/txe_oracle_public_context.d.ts +9 -9
- package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_public_context.js +15 -9
- package/dest/oracle/txe_oracle_registry.d.ts +159 -3
- package/dest/oracle/txe_oracle_registry.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_registry.js +221 -34
- package/dest/oracle/txe_oracle_top_level_context.d.ts +22 -8
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +107 -49
- package/dest/oracle/txe_oracle_version.d.ts +3 -3
- package/dest/oracle/txe_oracle_version.js +3 -3
- package/dest/rpc_translator.d.ts +14 -4
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +91 -11
- package/dest/server.bundle.js +1 -1
- package/dest/state_machine/archiver.d.ts +1 -1
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +1 -2
- package/dest/state_machine/dummy_p2p_client.d.ts +4 -2
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +6 -0
- package/dest/state_machine/global_variable_builder.d.ts +3 -4
- package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
- package/dest/state_machine/global_variable_builder.js +0 -3
- package/dest/state_machine/index.d.ts +8 -6
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +40 -12
- package/dest/state_machine/synchronizer.d.ts +5 -2
- package/dest/state_machine/synchronizer.d.ts.map +1 -1
- package/dest/state_machine/synchronizer.js +6 -2
- package/dest/txe_session.d.ts +8 -6
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +72 -32
- package/dest/utils/block_creation.d.ts +2 -2
- package/dest/utils/block_creation.d.ts.map +1 -1
- package/dest/utils/block_creation.js +2 -2
- package/dest/utils/encoding.d.ts +4 -3
- package/dest/utils/encoding.d.ts.map +1 -1
- package/dest/utils/tx_effect_creation.d.ts +1 -1
- package/dest/utils/tx_effect_creation.d.ts.map +1 -1
- package/dest/utils/tx_effect_creation.js +0 -1
- package/dest/utils/txe_public_contract_data_source.d.ts +1 -1
- package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -1
- package/dest/utils/txe_public_contract_data_source.js +7 -4
- package/dest/worker.bundle.js +1 -1
- package/package.json +17 -17
- package/src/bin/oracle_test_server.ts +2 -2
- package/src/constants.ts +1 -1
- package/src/index.ts +5 -3
- package/src/oracle/interfaces.ts +21 -8
- package/src/oracle/tagging_secret_strategy.ts +25 -0
- package/src/oracle/test-resolver/default_fixtures.ts +282 -0
- package/src/oracle/test-resolver/index.ts +1 -2
- package/src/oracle/test-resolver/resolver.ts +122 -42
- package/src/oracle/txe_oracle_public_context.ts +16 -14
- package/src/oracle/txe_oracle_registry.ts +156 -18
- package/src/oracle/txe_oracle_top_level_context.ts +147 -50
- package/src/oracle/txe_oracle_version.ts +3 -3
- package/src/rpc_translator.ts +119 -11
- package/src/state_machine/archiver.ts +0 -1
- package/src/state_machine/dummy_p2p_client.ts +9 -0
- package/src/state_machine/global_variable_builder.ts +2 -16
- package/src/state_machine/index.ts +49 -30
- package/src/state_machine/synchronizer.ts +8 -2
- package/src/txe_session.ts +104 -27
- package/src/utils/block_creation.ts +2 -1
- package/src/utils/tx_effect_creation.ts +0 -2
- package/src/utils/txe_public_contract_data_source.ts +6 -4
- package/dest/AuthRegistry-CPGFQR26.js +0 -3
- package/dest/AuthRegistry-CPGFQR26.js.map +0 -7
- package/dest/ContractClassRegistry-EHVIHGEK.js +0 -3
- package/dest/ContractClassRegistry-EHVIHGEK.js.map +0 -7
- package/dest/ContractInstanceRegistry-DWZDXHRG.js +0 -3
- package/dest/ContractInstanceRegistry-DWZDXHRG.js.map +0 -7
- package/dest/FeeJuice-MI32ZO7B.js +0 -3
- package/dest/FeeJuice-MI32ZO7B.js.map +0 -7
- package/dest/HandshakeRegistry-3KSP3ITH.js +0 -3
- package/dest/HandshakeRegistry-3KSP3ITH.js.map +0 -7
- package/dest/MultiCallEntrypoint-IU7HYFYE.js +0 -3
- package/dest/MultiCallEntrypoint-IU7HYFYE.js.map +0 -7
- package/dest/SchnorrAccount-6TUE7JX4.js +0 -3
- package/dest/SchnorrAccount-6TUE7JX4.js.map +0 -7
- package/dest/SchnorrInitializerlessAccount-S3DU2DJK.js +0 -3
- package/dest/SchnorrInitializerlessAccount-S3DU2DJK.js.map +0 -7
- package/dest/chunk-5U25VAFR.js +0 -265
- package/dest/chunk-5U25VAFR.js.map +0 -7
- package/dest/oracle/test-resolver/fixtures.d.ts +0 -43
- package/dest/oracle/test-resolver/fixtures.d.ts.map +0 -1
- package/dest/oracle/test-resolver/fixtures.js +0 -39
- package/src/oracle/test-resolver/fixtures.ts +0 -84
package/src/rpc_translator.ts
CHANGED
|
@@ -210,6 +210,26 @@ export class RPCTranslator {
|
|
|
210
210
|
});
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
+
// eslint-disable-next-line camelcase
|
|
214
|
+
aztec_txe_sendL1ToL2Message(...inputs: ForeignCallArgs) {
|
|
215
|
+
return callTxeHandler({
|
|
216
|
+
oracle: 'aztec_txe_sendL1ToL2Message',
|
|
217
|
+
inputs,
|
|
218
|
+
handler: ([content, secretHash, sender, recipient]) =>
|
|
219
|
+
this.handlerAsTxe().sendL1ToL2Message(content, secretHash, sender, recipient),
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// eslint-disable-next-line camelcase
|
|
224
|
+
aztec_txe_setTaggingSecretStrategies(...inputs: ForeignCallArgs) {
|
|
225
|
+
return callTxeHandler({
|
|
226
|
+
oracle: 'aztec_txe_setTaggingSecretStrategies',
|
|
227
|
+
inputs,
|
|
228
|
+
handler: ([unconstrainedStrategy, constrainedStrategy]) =>
|
|
229
|
+
this.handlerAsTxe().setTaggingSecretStrategies(unconstrainedStrategy, constrainedStrategy),
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
|
|
213
233
|
// PXE oracles
|
|
214
234
|
|
|
215
235
|
// eslint-disable-next-line camelcase
|
|
@@ -439,7 +459,7 @@ export class RPCTranslator {
|
|
|
439
459
|
return callTxeHandler({
|
|
440
460
|
oracle: 'aztec_utl_getKeyValidationRequest',
|
|
441
461
|
inputs,
|
|
442
|
-
handler: ([pkMHash]) => this.handlerAsUtility().getKeyValidationRequest(pkMHash),
|
|
462
|
+
handler: ([pkMHash, keyIndex]) => this.handlerAsUtility().getKeyValidationRequest(pkMHash, keyIndex),
|
|
443
463
|
});
|
|
444
464
|
}
|
|
445
465
|
|
|
@@ -468,6 +488,16 @@ export class RPCTranslator {
|
|
|
468
488
|
});
|
|
469
489
|
}
|
|
470
490
|
|
|
491
|
+
// eslint-disable-next-line camelcase
|
|
492
|
+
aztec_utl_getL1ToL2MembershipWitnessV2(...inputs: ForeignCallArgs) {
|
|
493
|
+
return callTxeHandler({
|
|
494
|
+
oracle: 'aztec_utl_getL1ToL2MembershipWitnessV2',
|
|
495
|
+
inputs,
|
|
496
|
+
handler: ([messageHash, nullifier]) =>
|
|
497
|
+
this.handlerAsUtility().getL1ToL2MembershipWitnessV2(messageHash, nullifier),
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
|
|
471
501
|
// eslint-disable-next-line camelcase
|
|
472
502
|
aztec_utl_getAuthWitness(...inputs: ForeignCallArgs) {
|
|
473
503
|
return callTxeHandler({
|
|
@@ -542,6 +572,16 @@ export class RPCTranslator {
|
|
|
542
572
|
});
|
|
543
573
|
}
|
|
544
574
|
|
|
575
|
+
// eslint-disable-next-line camelcase
|
|
576
|
+
aztec_utl_areBlockHashesInArchive(...inputs: ForeignCallArgs) {
|
|
577
|
+
return callTxeHandler({
|
|
578
|
+
oracle: 'aztec_utl_areBlockHashesInArchive',
|
|
579
|
+
inputs,
|
|
580
|
+
handler: ([anchorBlockHash, blockHashes]) =>
|
|
581
|
+
this.handlerAsUtility().areBlockHashesInArchive(anchorBlockHash, blockHashes),
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
|
|
545
585
|
// eslint-disable-next-line camelcase
|
|
546
586
|
aztec_utl_getLowNullifierMembershipWitness(...inputs: ForeignCallArgs) {
|
|
547
587
|
return callTxeHandler({
|
|
@@ -553,11 +593,11 @@ export class RPCTranslator {
|
|
|
553
593
|
}
|
|
554
594
|
|
|
555
595
|
// eslint-disable-next-line camelcase
|
|
556
|
-
|
|
596
|
+
aztec_utl_getPendingTaggedLogsV2(...inputs: ForeignCallArgs) {
|
|
557
597
|
return callTxeHandler({
|
|
558
|
-
oracle: '
|
|
598
|
+
oracle: 'aztec_utl_getPendingTaggedLogsV2',
|
|
559
599
|
inputs,
|
|
560
|
-
handler: ([scope, providedSecrets]) => this.handlerAsUtility().
|
|
600
|
+
handler: ([scope, providedSecrets]) => this.handlerAsUtility().getPendingTaggedLogsV2(scope, providedSecrets),
|
|
561
601
|
});
|
|
562
602
|
}
|
|
563
603
|
|
|
@@ -576,20 +616,20 @@ export class RPCTranslator {
|
|
|
576
616
|
}
|
|
577
617
|
|
|
578
618
|
// eslint-disable-next-line camelcase
|
|
579
|
-
|
|
619
|
+
aztec_utl_getLogsByTagV2(...inputs: ForeignCallArgs) {
|
|
580
620
|
return callTxeHandler({
|
|
581
|
-
oracle: '
|
|
621
|
+
oracle: 'aztec_utl_getLogsByTagV2',
|
|
582
622
|
inputs,
|
|
583
|
-
handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().
|
|
623
|
+
handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot),
|
|
584
624
|
});
|
|
585
625
|
}
|
|
586
626
|
|
|
587
627
|
// eslint-disable-next-line camelcase
|
|
588
|
-
|
|
628
|
+
aztec_utl_getResolvedTxs(...inputs: ForeignCallArgs) {
|
|
589
629
|
return callTxeHandler({
|
|
590
|
-
oracle: '
|
|
630
|
+
oracle: 'aztec_utl_getResolvedTxs',
|
|
591
631
|
inputs,
|
|
592
|
-
handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().
|
|
632
|
+
handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getResolvedTxs(requestArrayBaseSlot),
|
|
593
633
|
});
|
|
594
634
|
}
|
|
595
635
|
|
|
@@ -806,6 +846,54 @@ export class RPCTranslator {
|
|
|
806
846
|
});
|
|
807
847
|
}
|
|
808
848
|
|
|
849
|
+
// eslint-disable-next-line camelcase
|
|
850
|
+
aztec_utl_recordFact(...inputs: ForeignCallArgs) {
|
|
851
|
+
return callTxeHandler({
|
|
852
|
+
oracle: 'aztec_utl_recordFact',
|
|
853
|
+
inputs,
|
|
854
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId, factTypeId, payload, originBlock]) =>
|
|
855
|
+
this.handlerAsUtility().recordFact(
|
|
856
|
+
contractAddress,
|
|
857
|
+
scope,
|
|
858
|
+
factCollectionTypeId,
|
|
859
|
+
factCollectionId,
|
|
860
|
+
factTypeId,
|
|
861
|
+
payload,
|
|
862
|
+
originBlock,
|
|
863
|
+
),
|
|
864
|
+
});
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
// eslint-disable-next-line camelcase
|
|
868
|
+
aztec_utl_deleteFactCollection(...inputs: ForeignCallArgs) {
|
|
869
|
+
return callTxeHandler({
|
|
870
|
+
oracle: 'aztec_utl_deleteFactCollection',
|
|
871
|
+
inputs,
|
|
872
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId]) =>
|
|
873
|
+
this.handlerAsUtility().deleteFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId),
|
|
874
|
+
});
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
// eslint-disable-next-line camelcase
|
|
878
|
+
aztec_utl_getFactCollection(...inputs: ForeignCallArgs) {
|
|
879
|
+
return callTxeHandler({
|
|
880
|
+
oracle: 'aztec_utl_getFactCollection',
|
|
881
|
+
inputs,
|
|
882
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId]) =>
|
|
883
|
+
this.handlerAsUtility().getFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId),
|
|
884
|
+
});
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
// eslint-disable-next-line camelcase
|
|
888
|
+
aztec_utl_getFactCollectionsByType(...inputs: ForeignCallArgs) {
|
|
889
|
+
return callTxeHandler({
|
|
890
|
+
oracle: 'aztec_utl_getFactCollectionsByType',
|
|
891
|
+
inputs,
|
|
892
|
+
handler: ([contractAddress, scope, factCollectionTypeId]) =>
|
|
893
|
+
this.handlerAsUtility().getFactCollectionsByType(contractAddress, scope, factCollectionTypeId),
|
|
894
|
+
});
|
|
895
|
+
}
|
|
896
|
+
|
|
809
897
|
// AVM opcodes
|
|
810
898
|
|
|
811
899
|
// eslint-disable-next-line camelcase
|
|
@@ -1044,8 +1132,9 @@ export class RPCTranslator {
|
|
|
1044
1132
|
return callTxeHandler({
|
|
1045
1133
|
oracle: 'aztec_txe_executeUtilityFunction',
|
|
1046
1134
|
inputs,
|
|
1047
|
-
handler: ([targetContractAddress, functionSelector, args, authorizedUtilityCallTargets]) =>
|
|
1135
|
+
handler: ([from, targetContractAddress, functionSelector, args, authorizedUtilityCallTargets]) =>
|
|
1048
1136
|
this.stateHandler.executeUtilityFunction(
|
|
1137
|
+
from,
|
|
1049
1138
|
targetContractAddress,
|
|
1050
1139
|
functionSelector,
|
|
1051
1140
|
args,
|
|
@@ -1073,6 +1162,25 @@ export class RPCTranslator {
|
|
|
1073
1162
|
});
|
|
1074
1163
|
}
|
|
1075
1164
|
|
|
1165
|
+
// eslint-disable-next-line camelcase
|
|
1166
|
+
aztec_prv_resolveTaggingStrategy(...inputs: ForeignCallArgs) {
|
|
1167
|
+
return callTxeHandler({
|
|
1168
|
+
oracle: 'aztec_prv_resolveTaggingStrategy',
|
|
1169
|
+
inputs,
|
|
1170
|
+
handler: ([sender, recipient, deliveryMode]) =>
|
|
1171
|
+
this.handlerAsPrivate().resolveTaggingStrategy(sender, recipient, deliveryMode),
|
|
1172
|
+
});
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
// eslint-disable-next-line camelcase
|
|
1176
|
+
aztec_prv_resolveCustomRequest(...inputs: ForeignCallArgs) {
|
|
1177
|
+
return callTxeHandler({
|
|
1178
|
+
oracle: 'aztec_prv_resolveCustomRequest',
|
|
1179
|
+
inputs,
|
|
1180
|
+
handler: ([kind, payload]) => this.handlerAsPrivate().resolveCustomRequest(kind, payload),
|
|
1181
|
+
});
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1076
1184
|
// eslint-disable-next-line camelcase
|
|
1077
1185
|
aztec_prv_getAppTaggingSecret(...inputs: ForeignCallArgs) {
|
|
1078
1186
|
return callTxeHandler({
|
|
@@ -9,6 +9,7 @@ import type {
|
|
|
9
9
|
P2PConfig,
|
|
10
10
|
P2PDuplicateAttestationCallback,
|
|
11
11
|
P2PDuplicateProposalCallback,
|
|
12
|
+
P2POversizedProposalCallback,
|
|
12
13
|
P2PSyncState,
|
|
13
14
|
PeerId,
|
|
14
15
|
ReqRespSubProtocol,
|
|
@@ -121,6 +122,10 @@ export class DummyP2P implements P2P {
|
|
|
121
122
|
throw new Error('DummyP2P does not implement "getPendingTxCount"');
|
|
122
123
|
}
|
|
123
124
|
|
|
125
|
+
public hasEligiblePendingTxs(_minCount: number): Promise<boolean> {
|
|
126
|
+
throw new Error('DummyP2P does not implement "hasEligiblePendingTxs"');
|
|
127
|
+
}
|
|
128
|
+
|
|
124
129
|
public start(): Promise<void> {
|
|
125
130
|
throw new Error('DummyP2P does not implement "start"');
|
|
126
131
|
}
|
|
@@ -237,6 +242,10 @@ export class DummyP2P implements P2P {
|
|
|
237
242
|
throw new Error('DummyP2P does not implement "registerDuplicateProposalCallback"');
|
|
238
243
|
}
|
|
239
244
|
|
|
245
|
+
public registerOversizedProposalCallback(_callback: P2POversizedProposalCallback): void {
|
|
246
|
+
throw new Error('DummyP2P does not implement "registerOversizedProposalCallback"');
|
|
247
|
+
}
|
|
248
|
+
|
|
240
249
|
public registerDuplicateAttestationCallback(_callback: P2PDuplicateAttestationCallback): void {
|
|
241
250
|
throw new Error('DummyP2P does not implement "registerDuplicateAttestationCallback"');
|
|
242
251
|
}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import type { SimulationOverridesPlan } from '@aztec/ethereum/contracts';
|
|
2
|
-
import {
|
|
2
|
+
import type { SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
3
|
import { times } from '@aztec/foundation/collection';
|
|
4
4
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
6
|
import { FEE_ORACLE_LAG, GasFees } from '@aztec/stdlib/gas';
|
|
7
7
|
import { makeGlobalVariables } from '@aztec/stdlib/testing';
|
|
8
|
-
import {
|
|
9
|
-
type CheckpointGlobalVariables,
|
|
10
|
-
type FeeProvider,
|
|
11
|
-
type GlobalVariableBuilder,
|
|
12
|
-
GlobalVariables,
|
|
13
|
-
} from '@aztec/stdlib/tx';
|
|
8
|
+
import type { CheckpointGlobalVariables, FeeProvider, GlobalVariableBuilder } from '@aztec/stdlib/tx';
|
|
14
9
|
|
|
15
10
|
/** Simple FeeProvider for TXE that returns zero fees. */
|
|
16
11
|
export class TXEFeeProvider implements FeeProvider {
|
|
@@ -24,15 +19,6 @@ export class TXEFeeProvider implements FeeProvider {
|
|
|
24
19
|
}
|
|
25
20
|
|
|
26
21
|
export class TXEGlobalVariablesBuilder implements GlobalVariableBuilder {
|
|
27
|
-
public buildGlobalVariables(
|
|
28
|
-
_blockNumber: BlockNumber,
|
|
29
|
-
_coinbase: EthAddress,
|
|
30
|
-
_feeRecipient: AztecAddress,
|
|
31
|
-
_slotNumber?: SlotNumber,
|
|
32
|
-
): Promise<GlobalVariables> {
|
|
33
|
-
return Promise.resolve(makeGlobalVariables());
|
|
34
|
-
}
|
|
35
|
-
|
|
36
22
|
public buildCheckpointGlobalVariables(
|
|
37
23
|
_coinbase: EthAddress,
|
|
38
24
|
_feeRecipient: AztecAddress,
|
|
@@ -3,8 +3,14 @@ import { TestCircuitVerifier } from '@aztec/bb-prover/test';
|
|
|
3
3
|
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
6
|
-
import {
|
|
7
|
-
|
|
6
|
+
import {
|
|
7
|
+
type AnchorBlockStore,
|
|
8
|
+
ContractClassService,
|
|
9
|
+
type ContractStore,
|
|
10
|
+
ContractSyncService,
|
|
11
|
+
type NoteStore,
|
|
12
|
+
} from '@aztec/pxe/server';
|
|
13
|
+
import { TxResolverService } from '@aztec/pxe/simulator';
|
|
8
14
|
import { L2Block, type L2TipsProvider } from '@aztec/stdlib/block';
|
|
9
15
|
import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
10
16
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
@@ -29,7 +35,8 @@ export class TXEStateMachine {
|
|
|
29
35
|
public archiver: TXEArchiver,
|
|
30
36
|
public anchorBlockStore: AnchorBlockStore,
|
|
31
37
|
public contractSyncService: ContractSyncService,
|
|
32
|
-
public
|
|
38
|
+
public contractClassService: ContractClassService,
|
|
39
|
+
public txResolver: TxResolverService,
|
|
33
40
|
) {}
|
|
34
41
|
|
|
35
42
|
public static async create(
|
|
@@ -42,41 +49,52 @@ export class TXEStateMachine {
|
|
|
42
49
|
const aztecNodeConfig = {} as AztecNodeConfig;
|
|
43
50
|
|
|
44
51
|
const log = createLogger('txe_node');
|
|
45
|
-
const node = new AztecNodeService(
|
|
46
|
-
aztecNodeConfig,
|
|
47
|
-
new DummyP2P(),
|
|
48
|
-
archiver,
|
|
49
|
-
archiver,
|
|
50
|
-
archiver,
|
|
51
|
-
archiver,
|
|
52
|
-
synchronizer,
|
|
53
|
-
undefined,
|
|
54
|
-
undefined,
|
|
55
|
-
undefined,
|
|
56
|
-
undefined,
|
|
57
|
-
async () => {},
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
new TXEGlobalVariablesBuilder(),
|
|
61
|
-
|
|
62
|
-
new
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
new TestCircuitVerifier(),
|
|
66
|
-
|
|
52
|
+
const node = new AztecNodeService({
|
|
53
|
+
config: aztecNodeConfig,
|
|
54
|
+
p2pClient: new DummyP2P(),
|
|
55
|
+
blockSource: archiver,
|
|
56
|
+
logsSource: archiver,
|
|
57
|
+
contractDataSource: archiver,
|
|
58
|
+
l1ToL2MessageSource: archiver,
|
|
59
|
+
worldStateSynchronizer: synchronizer,
|
|
60
|
+
sequencer: undefined,
|
|
61
|
+
proverNode: undefined,
|
|
62
|
+
slasherClient: undefined,
|
|
63
|
+
validatorsSentinel: undefined,
|
|
64
|
+
stopStartedWatchers: async () => {},
|
|
65
|
+
l1ChainId: CHAIN_ID,
|
|
66
|
+
version: VERSION,
|
|
67
|
+
globalVariableBuilder: new TXEGlobalVariablesBuilder(),
|
|
68
|
+
rollupContract: undefined,
|
|
69
|
+
feeProvider: new TXEFeeProvider(),
|
|
70
|
+
epochCache: new MockEpochCache(),
|
|
71
|
+
packageVersion: PACKAGE_VERSION,
|
|
72
|
+
peerProofVerifier: new TestCircuitVerifier(),
|
|
73
|
+
rpcProofVerifier: new TestCircuitVerifier(),
|
|
74
|
+
telemetry: undefined,
|
|
67
75
|
log,
|
|
68
|
-
);
|
|
76
|
+
});
|
|
69
77
|
|
|
78
|
+
const contractClassService = new ContractClassService(node, contractStore);
|
|
70
79
|
const contractSyncService = new ContractSyncService(
|
|
71
80
|
node,
|
|
72
81
|
contractStore,
|
|
82
|
+
contractClassService,
|
|
73
83
|
noteStore,
|
|
74
84
|
createLogger('txe:contract_sync'),
|
|
75
85
|
);
|
|
76
86
|
|
|
77
|
-
const
|
|
87
|
+
const txResolver = new TxResolverService(node);
|
|
78
88
|
|
|
79
|
-
return new this(
|
|
89
|
+
return new this(
|
|
90
|
+
node,
|
|
91
|
+
synchronizer,
|
|
92
|
+
archiver,
|
|
93
|
+
anchorBlockStore,
|
|
94
|
+
contractSyncService,
|
|
95
|
+
contractClassService,
|
|
96
|
+
txResolver,
|
|
97
|
+
);
|
|
80
98
|
}
|
|
81
99
|
|
|
82
100
|
/** Returns an {@link L2TipsProvider} backed by this node's chain tips. */
|
|
@@ -87,7 +105,7 @@ export class TXEStateMachine {
|
|
|
87
105
|
};
|
|
88
106
|
}
|
|
89
107
|
|
|
90
|
-
public async handleL2Block(block: L2Block) {
|
|
108
|
+
public async handleL2Block(block: L2Block, l1ToL2Messages: Fr[] = []) {
|
|
91
109
|
// Create a checkpoint from the block manually.
|
|
92
110
|
// TXE uses 1-block-per-checkpoint for testing simplicity, so we can use block number as checkpoint number.
|
|
93
111
|
// This uses the deprecated fromBlockNumber method intentionally for the TXE testing environment.
|
|
@@ -106,6 +124,7 @@ export class TXEStateMachine {
|
|
|
106
124
|
feeRecipient: block.header.globalVariables.feeRecipient,
|
|
107
125
|
gasFees: block.header.globalVariables.gasFees,
|
|
108
126
|
totalManaUsed: block.header.totalManaUsed,
|
|
127
|
+
accumulatedFees: block.header.totalFees,
|
|
109
128
|
}),
|
|
110
129
|
[block],
|
|
111
130
|
checkpointNumber,
|
|
@@ -124,7 +143,7 @@ export class TXEStateMachine {
|
|
|
124
143
|
this.contractSyncService.wipe();
|
|
125
144
|
|
|
126
145
|
await Promise.all([
|
|
127
|
-
this.synchronizer.handleL2Block(block),
|
|
146
|
+
this.synchronizer.handleL2Block(block, l1ToL2Messages),
|
|
128
147
|
this.archiver.addCheckpoints([publishedCheckpoint], undefined),
|
|
129
148
|
this.anchorBlockStore.setHeader(block.header),
|
|
130
149
|
]);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
2
2
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
5
|
import type { BlockHash, L2Block } from '@aztec/stdlib/block';
|
|
5
6
|
import type {
|
|
@@ -23,10 +24,10 @@ export class TXESynchronizer implements WorldStateSynchronizer {
|
|
|
23
24
|
return new this(nativeWorldStateService);
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
public async handleL2Block(block: L2Block) {
|
|
27
|
+
public async handleL2Block(block: L2Block, l1ToL2Messages: Fr[] = []) {
|
|
27
28
|
await this.nativeWorldStateService.handleL2BlockAndMessages(
|
|
28
29
|
block,
|
|
29
|
-
|
|
30
|
+
padArrayEnd<Fr, number>(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP),
|
|
30
31
|
);
|
|
31
32
|
|
|
32
33
|
this.blockNumber = block.header.globalVariables.blockNumber;
|
|
@@ -57,6 +58,11 @@ export class TXESynchronizer implements WorldStateSynchronizer {
|
|
|
57
58
|
return this.nativeWorldStateService.getSnapshot(BlockNumber(blockNumber));
|
|
58
59
|
}
|
|
59
60
|
|
|
61
|
+
/** Gets a snapshot at the given block number. The TXE has no reorgs, so the fork hash is not verified. */
|
|
62
|
+
public getVerifiedSnapshot(blockNumber: number, _blockHash: BlockHash): Promise<MerkleTreeReadOperations> {
|
|
63
|
+
return Promise.resolve(this.getSnapshot(blockNumber));
|
|
64
|
+
}
|
|
65
|
+
|
|
60
66
|
/** Backups the db to the target path. */
|
|
61
67
|
public backupTo(dstPath: string, compact?: boolean): Promise<Record<Exclude<SnapshotDataKeys, 'archiver'>, string>> {
|
|
62
68
|
return this.nativeWorldStateService.backupTo(dstPath, compact);
|