@aztec/txe 0.0.1-commit.2f68f620 → 0.0.1-commit.321f6a9
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-QVGDDH5X.js +3 -0
- package/dest/AuthRegistry-QVGDDH5X.js.map +7 -0
- package/dest/ContractClassRegistry-VWR3F42P.js +3 -0
- package/dest/ContractClassRegistry-VWR3F42P.js.map +7 -0
- package/dest/ContractInstanceRegistry-FHIWE33X.js +3 -0
- package/dest/ContractInstanceRegistry-FHIWE33X.js.map +7 -0
- package/dest/FeeJuice-SAOWVGG7.js +3 -0
- package/dest/FeeJuice-SAOWVGG7.js.map +7 -0
- package/dest/HandshakeRegistry-GY5CPEPS.js +3 -0
- package/dest/HandshakeRegistry-GY5CPEPS.js.map +7 -0
- package/dest/MultiCallEntrypoint-QG5H33ZZ.js +3 -0
- package/dest/MultiCallEntrypoint-QG5H33ZZ.js.map +7 -0
- package/dest/SchnorrAccount-NME3E45O.js +3 -0
- package/dest/SchnorrAccount-NME3E45O.js.map +7 -0
- package/dest/SchnorrInitializerlessAccount-WTGXU6SW.js +3 -0
- package/dest/SchnorrInitializerlessAccount-WTGXU6SW.js.map +7 -0
- package/dest/bin/check_txe_oracle_version.js +7 -15
- package/dest/bin/index.js +1 -1
- package/dest/bin/oracle_test_server.js +2 -2
- package/dest/chunk-32UHX7YY.js +3 -0
- package/dest/chunk-SZPMCTJK.js +260 -0
- package/dest/chunk-SZPMCTJK.js.map +7 -0
- package/dest/{chunk-W2NSX64C.js → chunk-YS3UIBVR.js} +2 -2
- package/dest/{chunk-W2NSX64C.js.map → chunk-YS3UIBVR.js.map} +3 -3
- package/dest/constants.d.ts +1 -1
- package/dest/constants.d.ts.map +1 -1
- package/dest/constants.js +1 -1
- package/dest/dispatcher_pool.d.ts +2 -2
- package/dest/dispatcher_pool.d.ts.map +1 -1
- package/dest/dispatcher_pool.js +5 -3
- package/dest/index.d.ts +2 -136
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +5 -3
- package/dest/metafile.json +9632 -7418
- package/dest/oracle/interfaces.d.ts +24 -11
- 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 +16 -0
- package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
- package/dest/oracle/test-resolver/default_fixtures.js +200 -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 +21 -7
- 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 +51 -26
- package/dest/oracle/txe_oracle_registry.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_registry.js +258 -53
- package/dest/oracle/txe_oracle_top_level_context.d.ts +30 -9
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +454 -288
- package/dest/oracle/txe_oracle_version.d.ts +4 -4
- package/dest/oracle/txe_oracle_version.js +4 -4
- package/dest/rpc_translator.d.ts +23 -4
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +167 -81
- 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 +5 -2
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +9 -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 +41 -19
- package/dest/state_machine/synchronizer.d.ts +10 -2
- package/dest/state_machine/synchronizer.d.ts.map +1 -1
- package/dest/state_machine/synchronizer.js +18 -5
- package/dest/txe_session.d.ts +29 -20
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +165 -41
- 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/check_txe_oracle_version.ts +9 -12
- package/src/bin/oracle_test_server.ts +2 -2
- package/src/constants.ts +1 -1
- package/src/dispatcher_pool.ts +4 -3
- package/src/index.ts +6 -4
- package/src/oracle/interfaces.ts +26 -9
- package/src/oracle/tagging_secret_strategy.ts +25 -0
- package/src/oracle/test-resolver/default_fixtures.ts +271 -0
- package/src/oracle/test-resolver/index.ts +1 -2
- package/src/oracle/test-resolver/resolver.ts +121 -41
- package/src/oracle/txe_oracle_public_context.ts +16 -14
- package/src/oracle/txe_oracle_registry.ts +197 -42
- package/src/oracle/txe_oracle_top_level_context.ts +201 -66
- package/src/oracle/txe_oracle_version.ts +4 -4
- package/src/rpc_translator.ts +224 -108
- package/src/state_machine/archiver.ts +0 -1
- package/src/state_machine/dummy_p2p_client.ts +13 -0
- package/src/state_machine/global_variable_builder.ts +2 -16
- package/src/state_machine/index.ts +50 -34
- package/src/state_machine/synchronizer.ts +26 -5
- package/src/txe_session.ts +284 -45
- 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/ContractClassRegistry-PII7Q556.js +0 -3
- package/dest/ContractClassRegistry-PII7Q556.js.map +0 -7
- package/dest/ContractInstanceRegistry-3MHLGFNZ.js +0 -3
- package/dest/ContractInstanceRegistry-3MHLGFNZ.js.map +0 -7
- package/dest/FeeJuice-TQV5AQK7.js +0 -3
- package/dest/FeeJuice-TQV5AQK7.js.map +0 -7
- package/dest/MultiCallEntrypoint-SBJUIJY7.js +0 -3
- package/dest/MultiCallEntrypoint-SBJUIJY7.js.map +0 -7
- package/dest/SchnorrAccount-MQXPIZ44.js +0 -3
- package/dest/SchnorrAccount-MQXPIZ44.js.map +0 -7
- package/dest/chunk-BJVAAXNA.js +0 -3
- package/dest/chunk-CDITIZHX.js +0 -257
- package/dest/chunk-CDITIZHX.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/dest/{chunk-BJVAAXNA.js.map → chunk-32UHX7YY.js.map} +0 -0
package/src/rpc_translator.ts
CHANGED
|
@@ -188,7 +188,7 @@ export class RPCTranslator {
|
|
|
188
188
|
return callTxeHandler({
|
|
189
189
|
oracle: 'aztec_txe_createAccount',
|
|
190
190
|
inputs,
|
|
191
|
-
handler: ([secret]) => this.handlerAsTxe().createAccount(secret),
|
|
191
|
+
handler: ([secret, partialAddress]) => this.handlerAsTxe().createAccount(secret, partialAddress),
|
|
192
192
|
});
|
|
193
193
|
}
|
|
194
194
|
|
|
@@ -210,6 +210,35 @@ 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
|
+
|
|
233
|
+
// eslint-disable-next-line camelcase
|
|
234
|
+
aztec_txe_setAuthorizeAllUtilityCallTargets(...inputs: ForeignCallArgs) {
|
|
235
|
+
return callTxeHandler({
|
|
236
|
+
oracle: 'aztec_txe_setAuthorizeAllUtilityCallTargets',
|
|
237
|
+
inputs,
|
|
238
|
+
handler: ([authorizeAll]) => this.handlerAsTxe().setAuthorizeAllUtilityCallTargets(authorizeAll),
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
|
|
213
242
|
// PXE oracles
|
|
214
243
|
|
|
215
244
|
// eslint-disable-next-line camelcase
|
|
@@ -271,20 +300,8 @@ export class RPCTranslator {
|
|
|
271
300
|
return callTxeHandler({
|
|
272
301
|
oracle: 'aztec_txe_getPrivateEvents',
|
|
273
302
|
inputs,
|
|
274
|
-
handler:
|
|
275
|
-
|
|
276
|
-
{
|
|
277
|
-
await this.handlerAsTxe().syncContractNonOracleMethod(
|
|
278
|
-
contractAddress,
|
|
279
|
-
scope,
|
|
280
|
-
this.stateHandler.getCurrentJob(),
|
|
281
|
-
);
|
|
282
|
-
// We cycle job to commit the stores after the contract sync.
|
|
283
|
-
await this.stateHandler.cycleJob();
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
return this.handlerAsTxe().getPrivateEvents(selector, contractAddress, scope);
|
|
287
|
-
},
|
|
303
|
+
handler: ([selector, contractAddress, scope]) =>
|
|
304
|
+
this.stateHandler.getPrivateEvents(selector, contractAddress, scope),
|
|
288
305
|
});
|
|
289
306
|
}
|
|
290
307
|
|
|
@@ -451,7 +468,7 @@ export class RPCTranslator {
|
|
|
451
468
|
return callTxeHandler({
|
|
452
469
|
oracle: 'aztec_utl_getKeyValidationRequest',
|
|
453
470
|
inputs,
|
|
454
|
-
handler: ([pkMHash]) => this.handlerAsUtility().getKeyValidationRequest(pkMHash),
|
|
471
|
+
handler: ([pkMHash, keyIndex]) => this.handlerAsUtility().getKeyValidationRequest(pkMHash, keyIndex),
|
|
455
472
|
});
|
|
456
473
|
}
|
|
457
474
|
|
|
@@ -480,6 +497,16 @@ export class RPCTranslator {
|
|
|
480
497
|
});
|
|
481
498
|
}
|
|
482
499
|
|
|
500
|
+
// eslint-disable-next-line camelcase
|
|
501
|
+
aztec_utl_getL1ToL2MembershipWitnessV2(...inputs: ForeignCallArgs) {
|
|
502
|
+
return callTxeHandler({
|
|
503
|
+
oracle: 'aztec_utl_getL1ToL2MembershipWitnessV2',
|
|
504
|
+
inputs,
|
|
505
|
+
handler: ([messageHash, nullifier]) =>
|
|
506
|
+
this.handlerAsUtility().getL1ToL2MembershipWitnessV2(messageHash, nullifier),
|
|
507
|
+
});
|
|
508
|
+
}
|
|
509
|
+
|
|
483
510
|
// eslint-disable-next-line camelcase
|
|
484
511
|
aztec_utl_getAuthWitness(...inputs: ForeignCallArgs) {
|
|
485
512
|
return callTxeHandler({
|
|
@@ -554,6 +581,16 @@ export class RPCTranslator {
|
|
|
554
581
|
});
|
|
555
582
|
}
|
|
556
583
|
|
|
584
|
+
// eslint-disable-next-line camelcase
|
|
585
|
+
aztec_utl_areBlockHashesInArchive(...inputs: ForeignCallArgs) {
|
|
586
|
+
return callTxeHandler({
|
|
587
|
+
oracle: 'aztec_utl_areBlockHashesInArchive',
|
|
588
|
+
inputs,
|
|
589
|
+
handler: ([anchorBlockHash, blockHashes]) =>
|
|
590
|
+
this.handlerAsUtility().areBlockHashesInArchive(anchorBlockHash, blockHashes),
|
|
591
|
+
});
|
|
592
|
+
}
|
|
593
|
+
|
|
557
594
|
// eslint-disable-next-line camelcase
|
|
558
595
|
aztec_utl_getLowNullifierMembershipWitness(...inputs: ForeignCallArgs) {
|
|
559
596
|
return callTxeHandler({
|
|
@@ -565,11 +602,11 @@ export class RPCTranslator {
|
|
|
565
602
|
}
|
|
566
603
|
|
|
567
604
|
// eslint-disable-next-line camelcase
|
|
568
|
-
|
|
605
|
+
aztec_utl_getPendingTaggedLogsV2(...inputs: ForeignCallArgs) {
|
|
569
606
|
return callTxeHandler({
|
|
570
|
-
oracle: '
|
|
607
|
+
oracle: 'aztec_utl_getPendingTaggedLogsV2',
|
|
571
608
|
inputs,
|
|
572
|
-
handler: ([scope, providedSecrets]) => this.handlerAsUtility().
|
|
609
|
+
handler: ([scope, providedSecrets]) => this.handlerAsUtility().getPendingTaggedLogsV2(scope, providedSecrets),
|
|
573
610
|
});
|
|
574
611
|
}
|
|
575
612
|
|
|
@@ -588,20 +625,29 @@ export class RPCTranslator {
|
|
|
588
625
|
}
|
|
589
626
|
|
|
590
627
|
// eslint-disable-next-line camelcase
|
|
591
|
-
|
|
628
|
+
aztec_utl_getLogsByTagV2(...inputs: ForeignCallArgs) {
|
|
629
|
+
return callTxeHandler({
|
|
630
|
+
oracle: 'aztec_utl_getLogsByTagV2',
|
|
631
|
+
inputs,
|
|
632
|
+
handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot),
|
|
633
|
+
});
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
// eslint-disable-next-line camelcase
|
|
637
|
+
aztec_utl_getResolvedTxs(...inputs: ForeignCallArgs) {
|
|
592
638
|
return callTxeHandler({
|
|
593
|
-
oracle: '
|
|
639
|
+
oracle: 'aztec_utl_getResolvedTxs',
|
|
594
640
|
inputs,
|
|
595
|
-
handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().
|
|
641
|
+
handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getResolvedTxs(requestArrayBaseSlot),
|
|
596
642
|
});
|
|
597
643
|
}
|
|
598
644
|
|
|
599
645
|
// eslint-disable-next-line camelcase
|
|
600
|
-
|
|
646
|
+
aztec_utl_getTxEffects(...inputs: ForeignCallArgs) {
|
|
601
647
|
return callTxeHandler({
|
|
602
|
-
oracle: '
|
|
648
|
+
oracle: 'aztec_utl_getTxEffects',
|
|
603
649
|
inputs,
|
|
604
|
-
handler: ([
|
|
650
|
+
handler: ([txHashes]) => this.handlerAsUtility().getTxEffects(txHashes),
|
|
605
651
|
});
|
|
606
652
|
}
|
|
607
653
|
|
|
@@ -707,6 +753,69 @@ export class RPCTranslator {
|
|
|
707
753
|
});
|
|
708
754
|
}
|
|
709
755
|
|
|
756
|
+
// eslint-disable-next-line camelcase
|
|
757
|
+
aztec_utl_pushTransient(...inputs: ForeignCallArgs) {
|
|
758
|
+
return callTxeHandler({
|
|
759
|
+
oracle: 'aztec_utl_pushTransient',
|
|
760
|
+
inputs,
|
|
761
|
+
handler: ([slot, elements]) => this.handlerAsUtility().pushTransient(slot, elements),
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
// eslint-disable-next-line camelcase
|
|
766
|
+
aztec_utl_popTransient(...inputs: ForeignCallArgs) {
|
|
767
|
+
return callTxeHandler({
|
|
768
|
+
oracle: 'aztec_utl_popTransient',
|
|
769
|
+
inputs,
|
|
770
|
+
handler: ([slot]) => this.handlerAsUtility().popTransient(slot),
|
|
771
|
+
});
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
// eslint-disable-next-line camelcase
|
|
775
|
+
aztec_utl_getTransient(...inputs: ForeignCallArgs) {
|
|
776
|
+
return callTxeHandler({
|
|
777
|
+
oracle: 'aztec_utl_getTransient',
|
|
778
|
+
inputs,
|
|
779
|
+
handler: ([slot, index]) => this.handlerAsUtility().getTransient(slot, index),
|
|
780
|
+
});
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
// eslint-disable-next-line camelcase
|
|
784
|
+
aztec_utl_setTransient(...inputs: ForeignCallArgs) {
|
|
785
|
+
return callTxeHandler({
|
|
786
|
+
oracle: 'aztec_utl_setTransient',
|
|
787
|
+
inputs,
|
|
788
|
+
handler: ([slot, index, elements]) => this.handlerAsUtility().setTransient(slot, index, elements),
|
|
789
|
+
});
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
// eslint-disable-next-line camelcase
|
|
793
|
+
aztec_utl_getTransientLen(...inputs: ForeignCallArgs) {
|
|
794
|
+
return callTxeHandler({
|
|
795
|
+
oracle: 'aztec_utl_getTransientLen',
|
|
796
|
+
inputs,
|
|
797
|
+
handler: ([slot]) => this.handlerAsUtility().getTransientLen(slot),
|
|
798
|
+
});
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
// eslint-disable-next-line camelcase
|
|
802
|
+
aztec_utl_removeTransient(...inputs: ForeignCallArgs) {
|
|
803
|
+
return callTxeHandler({
|
|
804
|
+
oracle: 'aztec_utl_removeTransient',
|
|
805
|
+
inputs,
|
|
806
|
+
handler: ([slot, index]) => this.handlerAsUtility().removeTransient(slot, index),
|
|
807
|
+
});
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
// eslint-disable-next-line camelcase
|
|
811
|
+
aztec_utl_clearTransient(...inputs: ForeignCallArgs) {
|
|
812
|
+
return callTxeHandler({
|
|
813
|
+
oracle: 'aztec_utl_clearTransient',
|
|
814
|
+
inputs,
|
|
815
|
+
handler: ([slot]) => this.handlerAsUtility().clearTransient(slot),
|
|
816
|
+
});
|
|
817
|
+
}
|
|
818
|
+
|
|
710
819
|
// TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
|
|
711
820
|
// The compiler didn't throw an error, so it took me a while to learn of the existence of this file, and that I need
|
|
712
821
|
// to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
|
|
@@ -755,6 +864,54 @@ export class RPCTranslator {
|
|
|
755
864
|
});
|
|
756
865
|
}
|
|
757
866
|
|
|
867
|
+
// eslint-disable-next-line camelcase
|
|
868
|
+
aztec_utl_recordFact(...inputs: ForeignCallArgs) {
|
|
869
|
+
return callTxeHandler({
|
|
870
|
+
oracle: 'aztec_utl_recordFact',
|
|
871
|
+
inputs,
|
|
872
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId, factTypeId, payload, originBlock]) =>
|
|
873
|
+
this.handlerAsUtility().recordFact(
|
|
874
|
+
contractAddress,
|
|
875
|
+
scope,
|
|
876
|
+
factCollectionTypeId,
|
|
877
|
+
factCollectionId,
|
|
878
|
+
factTypeId,
|
|
879
|
+
payload,
|
|
880
|
+
originBlock,
|
|
881
|
+
),
|
|
882
|
+
});
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
// eslint-disable-next-line camelcase
|
|
886
|
+
aztec_utl_deleteFactCollection(...inputs: ForeignCallArgs) {
|
|
887
|
+
return callTxeHandler({
|
|
888
|
+
oracle: 'aztec_utl_deleteFactCollection',
|
|
889
|
+
inputs,
|
|
890
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId]) =>
|
|
891
|
+
this.handlerAsUtility().deleteFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId),
|
|
892
|
+
});
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
// eslint-disable-next-line camelcase
|
|
896
|
+
aztec_utl_getFactCollection(...inputs: ForeignCallArgs) {
|
|
897
|
+
return callTxeHandler({
|
|
898
|
+
oracle: 'aztec_utl_getFactCollection',
|
|
899
|
+
inputs,
|
|
900
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId]) =>
|
|
901
|
+
this.handlerAsUtility().getFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId),
|
|
902
|
+
});
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
// eslint-disable-next-line camelcase
|
|
906
|
+
aztec_utl_getFactCollectionsByType(...inputs: ForeignCallArgs) {
|
|
907
|
+
return callTxeHandler({
|
|
908
|
+
oracle: 'aztec_utl_getFactCollectionsByType',
|
|
909
|
+
inputs,
|
|
910
|
+
handler: ([contractAddress, scope, factCollectionTypeId]) =>
|
|
911
|
+
this.handlerAsUtility().getFactCollectionsByType(contractAddress, scope, factCollectionTypeId),
|
|
912
|
+
});
|
|
913
|
+
}
|
|
914
|
+
|
|
758
915
|
// AVM opcodes
|
|
759
916
|
|
|
760
917
|
// eslint-disable-next-line camelcase
|
|
@@ -958,13 +1115,12 @@ export class RPCTranslator {
|
|
|
958
1115
|
});
|
|
959
1116
|
}
|
|
960
1117
|
|
|
961
|
-
// TODO(F-674): Move orchestration logic into the handler so the transport layer is pure serialize->delegate->deserialize.
|
|
962
1118
|
// eslint-disable-next-line camelcase
|
|
963
1119
|
aztec_txe_privateCallNewFlow(...inputs: ForeignCallArgs) {
|
|
964
1120
|
return callTxeHandler({
|
|
965
1121
|
oracle: 'aztec_txe_privateCallNewFlow',
|
|
966
1122
|
inputs,
|
|
967
|
-
handler:
|
|
1123
|
+
handler: ([
|
|
968
1124
|
from,
|
|
969
1125
|
targetContractAddress,
|
|
970
1126
|
functionSelector,
|
|
@@ -974,103 +1130,44 @@ export class RPCTranslator {
|
|
|
974
1130
|
additionalScopes,
|
|
975
1131
|
authorizedUtilityCallTargets,
|
|
976
1132
|
gasSettings,
|
|
977
|
-
]) =>
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
gasSettings,
|
|
990
|
-
);
|
|
991
|
-
|
|
992
|
-
// Private execution collects offchain effects inside PXE's PrivateExecutionOracle rather than
|
|
993
|
-
// round-tripping them through `aztec_utl_emitOffchainEffect`, so the session buffer is empty
|
|
994
|
-
// at this point. Drain the effects from the execution tree into the session buffer so the
|
|
995
|
-
// next `env.offchain_messages()` call in the test sees them.
|
|
996
|
-
for (const data of offchainEffects) {
|
|
997
|
-
this.stateHandler.recordOffchainEffect(data);
|
|
998
|
-
}
|
|
999
|
-
|
|
1000
|
-
// TODO(F-335): Avoid doing the following call here.
|
|
1001
|
-
await this.stateHandler.cycleJob();
|
|
1002
|
-
|
|
1003
|
-
if (isStaticCall) {
|
|
1004
|
-
// Static calls revert their checkpoint and mine no block, so there is no tx hash to tag
|
|
1005
|
-
// offchain effects with. Querying `getLastTxEffects()` here would return an unrelated
|
|
1006
|
-
// predecessor tx.
|
|
1007
|
-
return { result: returnValues };
|
|
1008
|
-
}
|
|
1009
|
-
const { txHash } = await this.handlerAsTxe().getLastTxEffects();
|
|
1010
|
-
return { result: returnValues, txHash: txHash.hash };
|
|
1011
|
-
});
|
|
1012
|
-
|
|
1013
|
-
return returnValues;
|
|
1014
|
-
},
|
|
1133
|
+
]) =>
|
|
1134
|
+
this.stateHandler.executePrivateCall(
|
|
1135
|
+
from,
|
|
1136
|
+
targetContractAddress,
|
|
1137
|
+
functionSelector,
|
|
1138
|
+
args,
|
|
1139
|
+
argsHash,
|
|
1140
|
+
isStaticCall,
|
|
1141
|
+
additionalScopes,
|
|
1142
|
+
authorizedUtilityCallTargets,
|
|
1143
|
+
gasSettings,
|
|
1144
|
+
),
|
|
1015
1145
|
});
|
|
1016
1146
|
}
|
|
1017
1147
|
|
|
1018
|
-
// TODO(F-674): Move orchestration logic into the handler so the transport layer is pure serialize->delegate->deserialize.
|
|
1019
1148
|
// eslint-disable-next-line camelcase
|
|
1020
1149
|
aztec_txe_executeUtilityFunction(...inputs: ForeignCallArgs) {
|
|
1021
1150
|
return callTxeHandler({
|
|
1022
1151
|
oracle: 'aztec_txe_executeUtilityFunction',
|
|
1023
1152
|
inputs,
|
|
1024
|
-
handler:
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
);
|
|
1033
|
-
|
|
1034
|
-
// TODO(F-335): Avoid doing the following call here.
|
|
1035
|
-
await this.stateHandler.cycleJob();
|
|
1036
|
-
|
|
1037
|
-
return { result: returnValues };
|
|
1038
|
-
});
|
|
1039
|
-
|
|
1040
|
-
return returnValues;
|
|
1041
|
-
},
|
|
1153
|
+
handler: ([from, targetContractAddress, functionSelector, args, authorizedUtilityCallTargets]) =>
|
|
1154
|
+
this.stateHandler.executeUtilityFunction(
|
|
1155
|
+
from,
|
|
1156
|
+
targetContractAddress,
|
|
1157
|
+
functionSelector,
|
|
1158
|
+
args,
|
|
1159
|
+
authorizedUtilityCallTargets,
|
|
1160
|
+
),
|
|
1042
1161
|
});
|
|
1043
1162
|
}
|
|
1044
1163
|
|
|
1045
|
-
// TODO(F-674): Move orchestration logic into the handler so the transport layer is pure serialize->delegate->deserialize.
|
|
1046
1164
|
// eslint-disable-next-line camelcase
|
|
1047
1165
|
aztec_txe_publicCallNewFlow(...inputs: ForeignCallArgs) {
|
|
1048
1166
|
return callTxeHandler({
|
|
1049
1167
|
oracle: 'aztec_txe_publicCallNewFlow',
|
|
1050
1168
|
inputs,
|
|
1051
|
-
handler:
|
|
1052
|
-
|
|
1053
|
-
const returnValues = await this.handlerAsTxe().publicCallNewFlow(
|
|
1054
|
-
from?.value,
|
|
1055
|
-
address,
|
|
1056
|
-
calldata,
|
|
1057
|
-
isStaticCall,
|
|
1058
|
-
gasSettings,
|
|
1059
|
-
);
|
|
1060
|
-
|
|
1061
|
-
// TODO(F-335): Avoid doing the following call here.
|
|
1062
|
-
await this.stateHandler.cycleJob();
|
|
1063
|
-
|
|
1064
|
-
if (isStaticCall) {
|
|
1065
|
-
// See equivalent branch in `aztec_txe_privateCallNewFlow`.
|
|
1066
|
-
return { result: returnValues };
|
|
1067
|
-
}
|
|
1068
|
-
const { txHash } = await this.handlerAsTxe().getLastTxEffects();
|
|
1069
|
-
return { result: returnValues, txHash: txHash.hash };
|
|
1070
|
-
});
|
|
1071
|
-
|
|
1072
|
-
return returnValues;
|
|
1073
|
-
},
|
|
1169
|
+
handler: ([from, address, calldata, isStaticCall, gasSettings]) =>
|
|
1170
|
+
this.stateHandler.executePublicCall(from, address, calldata, isStaticCall, gasSettings),
|
|
1074
1171
|
});
|
|
1075
1172
|
}
|
|
1076
1173
|
|
|
@@ -1083,6 +1180,25 @@ export class RPCTranslator {
|
|
|
1083
1180
|
});
|
|
1084
1181
|
}
|
|
1085
1182
|
|
|
1183
|
+
// eslint-disable-next-line camelcase
|
|
1184
|
+
aztec_prv_resolveTaggingStrategy(...inputs: ForeignCallArgs) {
|
|
1185
|
+
return callTxeHandler({
|
|
1186
|
+
oracle: 'aztec_prv_resolveTaggingStrategy',
|
|
1187
|
+
inputs,
|
|
1188
|
+
handler: ([sender, recipient, deliveryMode]) =>
|
|
1189
|
+
this.handlerAsPrivate().resolveTaggingStrategy(sender, recipient, deliveryMode),
|
|
1190
|
+
});
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1193
|
+
// eslint-disable-next-line camelcase
|
|
1194
|
+
aztec_prv_resolveCustomRequest(...inputs: ForeignCallArgs) {
|
|
1195
|
+
return callTxeHandler({
|
|
1196
|
+
oracle: 'aztec_prv_resolveCustomRequest',
|
|
1197
|
+
inputs,
|
|
1198
|
+
handler: ([kind, payload]) => this.handlerAsPrivate().resolveCustomRequest(kind, payload),
|
|
1199
|
+
});
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1086
1202
|
// eslint-disable-next-line camelcase
|
|
1087
1203
|
aztec_prv_getAppTaggingSecret(...inputs: ForeignCallArgs) {
|
|
1088
1204
|
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
|
}
|
|
@@ -171,6 +176,10 @@ export class DummyP2P implements P2P {
|
|
|
171
176
|
return Promise.resolve({ blockProposals: [], checkpointProposals: [] });
|
|
172
177
|
}
|
|
173
178
|
|
|
179
|
+
public hasCheckpointProposalForSlot(_slot: SlotNumber): Promise<boolean> {
|
|
180
|
+
return Promise.resolve(false);
|
|
181
|
+
}
|
|
182
|
+
|
|
174
183
|
public getL2BlockHash(_number: number): Promise<string | undefined> {
|
|
175
184
|
throw new Error('DummyP2P does not implement "getL2BlockHash"');
|
|
176
185
|
}
|
|
@@ -233,6 +242,10 @@ export class DummyP2P implements P2P {
|
|
|
233
242
|
throw new Error('DummyP2P does not implement "registerDuplicateProposalCallback"');
|
|
234
243
|
}
|
|
235
244
|
|
|
245
|
+
public registerOversizedProposalCallback(_callback: P2POversizedProposalCallback): void {
|
|
246
|
+
throw new Error('DummyP2P does not implement "registerOversizedProposalCallback"');
|
|
247
|
+
}
|
|
248
|
+
|
|
236
249
|
public registerDuplicateAttestationCallback(_callback: P2PDuplicateAttestationCallback): void {
|
|
237
250
|
throw new Error('DummyP2P does not implement "registerDuplicateAttestationCallback"');
|
|
238
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,55 +49,63 @@ 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. */
|
|
83
101
|
public get l2TipsProvider(): L2TipsProvider {
|
|
84
102
|
const node = this.node;
|
|
85
103
|
return {
|
|
86
|
-
getL2Tips:
|
|
87
|
-
const tips = await node.getChainTips();
|
|
88
|
-
return { ...tips, proposedCheckpoint: tips.checkpointed };
|
|
89
|
-
},
|
|
104
|
+
getL2Tips: () => node.getChainTips(),
|
|
90
105
|
};
|
|
91
106
|
}
|
|
92
107
|
|
|
93
|
-
public async handleL2Block(block: L2Block) {
|
|
108
|
+
public async handleL2Block(block: L2Block, l1ToL2Messages: Fr[] = []) {
|
|
94
109
|
// Create a checkpoint from the block manually.
|
|
95
110
|
// TXE uses 1-block-per-checkpoint for testing simplicity, so we can use block number as checkpoint number.
|
|
96
111
|
// This uses the deprecated fromBlockNumber method intentionally for the TXE testing environment.
|
|
@@ -109,6 +124,7 @@ export class TXEStateMachine {
|
|
|
109
124
|
feeRecipient: block.header.globalVariables.feeRecipient,
|
|
110
125
|
gasFees: block.header.globalVariables.gasFees,
|
|
111
126
|
totalManaUsed: block.header.totalManaUsed,
|
|
127
|
+
accumulatedFees: block.header.totalFees,
|
|
112
128
|
}),
|
|
113
129
|
[block],
|
|
114
130
|
checkpointNumber,
|
|
@@ -127,7 +143,7 @@ export class TXEStateMachine {
|
|
|
127
143
|
this.contractSyncService.wipe();
|
|
128
144
|
|
|
129
145
|
await Promise.all([
|
|
130
|
-
this.synchronizer.handleL2Block(block),
|
|
146
|
+
this.synchronizer.handleL2Block(block, l1ToL2Messages),
|
|
131
147
|
this.archiver.addCheckpoints([publishedCheckpoint], undefined),
|
|
132
148
|
this.anchorBlockStore.setHeader(block.header),
|
|
133
149
|
]);
|