@aztec/txe 0.0.1-commit.c31f2472 → 0.0.1-commit.c52d6e7

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.
Files changed (174) hide show
  1. package/dest/AuthRegistry-QVGDDH5X.js +3 -0
  2. package/dest/AuthRegistry-QVGDDH5X.js.map +7 -0
  3. package/dest/ContractClassRegistry-PVNCKGG7.js +3 -0
  4. package/dest/ContractClassRegistry-PVNCKGG7.js.map +7 -0
  5. package/dest/ContractInstanceRegistry-WLOZKTR6.js +3 -0
  6. package/dest/ContractInstanceRegistry-WLOZKTR6.js.map +7 -0
  7. package/dest/FeeJuice-MAQJU53K.js +3 -0
  8. package/dest/FeeJuice-MAQJU53K.js.map +7 -0
  9. package/dest/HandshakeRegistry-GY5CPEPS.js +3 -0
  10. package/dest/HandshakeRegistry-GY5CPEPS.js.map +7 -0
  11. package/dest/MultiCallEntrypoint-QG5H33ZZ.js +3 -0
  12. package/dest/MultiCallEntrypoint-QG5H33ZZ.js.map +7 -0
  13. package/dest/SchnorrAccount-ADD65DYA.js +3 -0
  14. package/dest/SchnorrAccount-ADD65DYA.js.map +7 -0
  15. package/dest/SchnorrInitializerlessAccount-TWGKRUSY.js +3 -0
  16. package/dest/SchnorrInitializerlessAccount-TWGKRUSY.js.map +7 -0
  17. package/dest/bin/check_txe_oracle_version.d.ts +2 -0
  18. package/dest/bin/check_txe_oracle_version.d.ts.map +1 -0
  19. package/dest/bin/check_txe_oracle_version.js +22 -0
  20. package/dest/bin/index.js +3 -30
  21. package/dest/bin/index.js.map +7 -0
  22. package/dest/bin/oracle_test_server.d.ts +3 -0
  23. package/dest/bin/oracle_test_server.d.ts.map +1 -0
  24. package/dest/bin/oracle_test_server.js +41 -0
  25. package/dest/chunk-32UHX7YY.js +3 -0
  26. package/dest/chunk-32UHX7YY.js.map +7 -0
  27. package/dest/chunk-RVEPNDEP.js +304 -0
  28. package/dest/chunk-RVEPNDEP.js.map +7 -0
  29. package/dest/chunk-XWIMXLKD.js +258 -0
  30. package/dest/chunk-XWIMXLKD.js.map +7 -0
  31. package/dest/constants.d.ts +5 -1
  32. package/dest/constants.d.ts.map +1 -1
  33. package/dest/constants.js +9 -1
  34. package/dest/dispatcher_pool.d.ts +67 -0
  35. package/dest/dispatcher_pool.d.ts.map +1 -0
  36. package/dest/dispatcher_pool.js +286 -0
  37. package/dest/index.d.ts +51 -7
  38. package/dest/index.d.ts.map +1 -1
  39. package/dest/index.js +73 -157
  40. package/dest/metafile.json +38833 -0
  41. package/dest/msgpackr_fr_extension.d.ts +2 -0
  42. package/dest/msgpackr_fr_extension.d.ts.map +1 -0
  43. package/dest/msgpackr_fr_extension.js +21 -0
  44. package/dest/oracle/interfaces.d.ts +69 -30
  45. package/dest/oracle/interfaces.d.ts.map +1 -1
  46. package/dest/oracle/tagging_secret_strategy.d.ts +12 -0
  47. package/dest/oracle/tagging_secret_strategy.d.ts.map +1 -0
  48. package/dest/oracle/tagging_secret_strategy.js +12 -0
  49. package/dest/oracle/test-resolver/default_fixtures.d.ts +16 -0
  50. package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
  51. package/dest/oracle/test-resolver/default_fixtures.js +200 -0
  52. package/dest/oracle/test-resolver/index.d.ts +9 -0
  53. package/dest/oracle/test-resolver/index.d.ts.map +1 -0
  54. package/dest/oracle/test-resolver/index.js +32 -0
  55. package/dest/oracle/test-resolver/resolver.d.ts +48 -0
  56. package/dest/oracle/test-resolver/resolver.d.ts.map +1 -0
  57. package/dest/oracle/test-resolver/resolver.js +181 -0
  58. package/dest/oracle/txe_oracle_public_context.d.ts +38 -14
  59. package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
  60. package/dest/oracle/txe_oracle_public_context.js +61 -13
  61. package/dest/oracle/txe_oracle_registry.d.ts +172 -0
  62. package/dest/oracle/txe_oracle_registry.d.ts.map +1 -0
  63. package/dest/oracle/txe_oracle_registry.js +767 -0
  64. package/dest/oracle/txe_oracle_top_level_context.d.ts +69 -29
  65. package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
  66. package/dest/oracle/txe_oracle_top_level_context.js +607 -279
  67. package/dest/oracle/txe_oracle_version.d.ts +17 -0
  68. package/dest/oracle/txe_oracle_version.d.ts.map +1 -0
  69. package/dest/oracle/txe_oracle_version.js +14 -0
  70. package/dest/oracle/txe_private_execution_oracle.d.ts +17 -0
  71. package/dest/oracle/txe_private_execution_oracle.d.ts.map +1 -0
  72. package/dest/oracle/txe_private_execution_oracle.js +15 -0
  73. package/dest/rpc_server.d.ts +14 -0
  74. package/dest/rpc_server.d.ts.map +1 -0
  75. package/dest/rpc_server.js +78 -0
  76. package/dest/rpc_translator.d.ts +116 -228
  77. package/dest/rpc_translator.d.ts.map +1 -1
  78. package/dest/rpc_translator.js +909 -612
  79. package/dest/server.bundle.js +3 -0
  80. package/dest/server.bundle.js.map +7 -0
  81. package/dest/state_machine/archiver.d.ts +6 -5
  82. package/dest/state_machine/archiver.d.ts.map +1 -1
  83. package/dest/state_machine/archiver.js +30 -20
  84. package/dest/state_machine/dummy_p2p_client.d.ts +29 -16
  85. package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
  86. package/dest/state_machine/dummy_p2p_client.js +53 -20
  87. package/dest/state_machine/global_variable_builder.d.ts +10 -6
  88. package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
  89. package/dest/state_machine/global_variable_builder.js +8 -5
  90. package/dest/state_machine/index.d.ts +13 -7
  91. package/dest/state_machine/index.d.ts.map +1 -1
  92. package/dest/state_machine/index.js +60 -15
  93. package/dest/state_machine/mock_epoch_cache.d.ts +19 -3
  94. package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
  95. package/dest/state_machine/mock_epoch_cache.js +36 -2
  96. package/dest/state_machine/synchronizer.d.ts +14 -6
  97. package/dest/state_machine/synchronizer.d.ts.map +1 -1
  98. package/dest/state_machine/synchronizer.js +22 -9
  99. package/dest/txe_session.d.ts +92 -16
  100. package/dest/txe_session.d.ts.map +1 -1
  101. package/dest/txe_session.js +380 -57
  102. package/dest/utils/block_creation.d.ts +2 -2
  103. package/dest/utils/block_creation.d.ts.map +1 -1
  104. package/dest/utils/block_creation.js +5 -3
  105. package/dest/utils/encoding.d.ts +194 -0
  106. package/dest/utils/encoding.d.ts.map +1 -0
  107. package/dest/{util → utils}/encoding.js +7 -2
  108. package/dest/{util → utils}/expected_failure_error.d.ts +1 -1
  109. package/dest/utils/expected_failure_error.d.ts.map +1 -0
  110. package/dest/utils/tx_effect_creation.d.ts +1 -1
  111. package/dest/utils/tx_effect_creation.d.ts.map +1 -1
  112. package/dest/utils/tx_effect_creation.js +0 -1
  113. package/dest/{util → utils}/txe_account_store.d.ts +1 -1
  114. package/dest/utils/txe_account_store.d.ts.map +1 -0
  115. package/dest/utils/txe_artifact_resolver.d.ts +37 -0
  116. package/dest/utils/txe_artifact_resolver.d.ts.map +1 -0
  117. package/dest/utils/txe_artifact_resolver.js +161 -0
  118. package/dest/utils/txe_public_contract_data_source.d.ts +20 -0
  119. package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -0
  120. package/dest/utils/txe_public_contract_data_source.js +51 -0
  121. package/dest/worker.bundle.js +3 -0
  122. package/dest/worker.bundle.js.map +7 -0
  123. package/dest/worker.d.ts +2 -0
  124. package/dest/worker.d.ts.map +1 -0
  125. package/dest/worker.js +92 -0
  126. package/package.json +38 -21
  127. package/src/bin/check_txe_oracle_version.ts +31 -0
  128. package/src/bin/index.ts +11 -2
  129. package/src/bin/oracle_test_server.ts +51 -0
  130. package/src/constants.ts +11 -1
  131. package/src/dispatcher_pool.ts +317 -0
  132. package/src/index.ts +99 -190
  133. package/src/msgpackr_fr_extension.ts +23 -0
  134. package/src/oracle/interfaces.ts +75 -35
  135. package/src/oracle/tagging_secret_strategy.ts +25 -0
  136. package/src/oracle/test-resolver/default_fixtures.ts +271 -0
  137. package/src/oracle/test-resolver/index.ts +44 -0
  138. package/src/oracle/test-resolver/resolver.ts +245 -0
  139. package/src/oracle/txe_oracle_public_context.ts +74 -12
  140. package/src/oracle/txe_oracle_registry.ts +556 -0
  141. package/src/oracle/txe_oracle_top_level_context.ts +464 -178
  142. package/src/oracle/txe_oracle_version.ts +17 -0
  143. package/src/oracle/txe_private_execution_oracle.ts +30 -0
  144. package/src/rpc_server.ts +87 -0
  145. package/src/rpc_translator.ts +1126 -987
  146. package/src/state_machine/archiver.ts +43 -20
  147. package/src/state_machine/dummy_p2p_client.ts +83 -32
  148. package/src/state_machine/global_variable_builder.ts +12 -11
  149. package/src/state_machine/index.ts +84 -33
  150. package/src/state_machine/mock_epoch_cache.ts +47 -3
  151. package/src/state_machine/synchronizer.ts +31 -10
  152. package/src/txe_session.ts +625 -128
  153. package/src/utils/block_creation.ts +5 -2
  154. package/src/{util → utils}/encoding.ts +8 -2
  155. package/src/utils/tx_effect_creation.ts +0 -2
  156. package/src/utils/txe_artifact_resolver.ts +217 -0
  157. package/src/utils/txe_public_contract_data_source.ts +60 -0
  158. package/src/worker.ts +98 -0
  159. package/dest/util/encoding.d.ts +0 -720
  160. package/dest/util/encoding.d.ts.map +0 -1
  161. package/dest/util/expected_failure_error.d.ts.map +0 -1
  162. package/dest/util/txe_account_store.d.ts.map +0 -1
  163. package/dest/util/txe_contract_store.d.ts +0 -12
  164. package/dest/util/txe_contract_store.d.ts.map +0 -1
  165. package/dest/util/txe_contract_store.js +0 -22
  166. package/dest/util/txe_public_contract_data_source.d.ts +0 -21
  167. package/dest/util/txe_public_contract_data_source.d.ts.map +0 -1
  168. package/dest/util/txe_public_contract_data_source.js +0 -67
  169. package/src/util/txe_contract_store.ts +0 -36
  170. package/src/util/txe_public_contract_data_source.ts +0 -86
  171. /package/dest/{util → utils}/expected_failure_error.js +0 -0
  172. /package/dest/{util → utils}/txe_account_store.js +0 -0
  173. /package/src/{util → utils}/expected_failure_error.ts +0 -0
  174. /package/src/{util → utils}/txe_account_store.ts +0 -0
@@ -1,9 +1,11 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { type Logger, createLogger } from '@aztec/foundation/log';
4
+ import type { ContractStore } from '@aztec/pxe/server';
4
5
  import { PublicDataWrite } from '@aztec/stdlib/avm';
5
6
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
7
  import type { L2Block } from '@aztec/stdlib/block';
8
+ import type { ContractInstancePreimageWithAddress } from '@aztec/stdlib/contract';
7
9
  import { computePublicDataTreeLeafSlot, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
8
10
  import {
9
11
  MerkleTreeId,
@@ -29,6 +31,7 @@ export class TXEOraclePublicContext implements IAvmExecutionOracle {
29
31
  private forkedWorldTrees: MerkleTreeWriteOperations,
30
32
  private txRequestHash: Fr,
31
33
  private globalVariables: GlobalVariables,
34
+ private contractStore: ContractStore,
32
35
  ) {
33
36
  this.logger = createLogger('txe:public_context');
34
37
 
@@ -39,46 +42,46 @@ export class TXEOraclePublicContext implements IAvmExecutionOracle {
39
42
  });
40
43
  }
41
44
 
42
- avmOpcodeAddress(): Promise<AztecAddress> {
45
+ address(): Promise<AztecAddress> {
43
46
  return Promise.resolve(this.contractAddress);
44
47
  }
45
48
 
46
- avmOpcodeSender(): Promise<AztecAddress> {
49
+ sender(): Promise<AztecAddress> {
47
50
  return Promise.resolve(AztecAddress.ZERO); // todo: change?
48
51
  }
49
52
 
50
- avmOpcodeBlockNumber(): Promise<BlockNumber> {
53
+ blockNumber(): Promise<BlockNumber> {
51
54
  return Promise.resolve(this.globalVariables.blockNumber);
52
55
  }
53
56
 
54
- avmOpcodeTimestamp(): Promise<bigint> {
57
+ timestamp(): Promise<bigint> {
55
58
  return Promise.resolve(this.globalVariables.timestamp);
56
59
  }
57
60
 
58
- avmOpcodeIsStaticCall(): Promise<boolean> {
61
+ isStaticCall(): Promise<boolean> {
59
62
  return Promise.resolve(false);
60
63
  }
61
64
 
62
- avmOpcodeChainId(): Promise<Fr> {
65
+ chainId(): Promise<Fr> {
63
66
  return Promise.resolve(this.globalVariables.chainId);
64
67
  }
65
68
 
66
- avmOpcodeVersion(): Promise<Fr> {
69
+ version(): Promise<Fr> {
67
70
  return Promise.resolve(this.globalVariables.version);
68
71
  }
69
72
 
70
- async avmOpcodeEmitNullifier(nullifier: Fr) {
73
+ async emitNullifier(nullifier: Fr) {
71
74
  const siloedNullifier = await siloNullifier(this.contractAddress, nullifier);
72
75
  this.transientSiloedNullifiers.push(siloedNullifier);
73
76
  }
74
77
 
75
- async avmOpcodeEmitNoteHash(noteHash: Fr) {
78
+ async emitNoteHash(noteHash: Fr) {
76
79
  const siloedNoteHash = await siloNoteHash(this.contractAddress, noteHash);
77
80
  // TODO: make the note hash unique - they are only siloed right now
78
81
  this.transientUniqueNoteHashes.push(siloedNoteHash);
79
82
  }
80
83
 
81
- async avmOpcodeNullifierExists(siloedNullifier: Fr): Promise<boolean> {
84
+ async nullifierExists(siloedNullifier: Fr): Promise<boolean> {
82
85
  const treeIndex = (
83
86
  await this.forkedWorldTrees.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, [siloedNullifier.toBuffer()])
84
87
  )[0];
@@ -87,7 +90,7 @@ export class TXEOraclePublicContext implements IAvmExecutionOracle {
87
90
  return treeIndex !== undefined || transientIndex !== undefined;
88
91
  }
89
92
 
90
- async avmOpcodeStorageWrite(slot: Fr, value: Fr) {
93
+ async storageWrite(slot: Fr, value: Fr) {
91
94
  this.logger.debug('AVM storage write', { slot, value });
92
95
 
93
96
  const dataWrite = new PublicDataWrite(await computePublicDataTreeLeafSlot(this.contractAddress, slot), value);
@@ -99,7 +102,7 @@ export class TXEOraclePublicContext implements IAvmExecutionOracle {
99
102
  ]);
100
103
  }
101
104
 
102
- async avmOpcodeStorageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr> {
105
+ async storageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr> {
103
106
  const leafSlot = await computePublicDataTreeLeafSlot(contractAddress, slot);
104
107
 
105
108
  const lowLeafResult = await this.forkedWorldTrees.getPreviousValueIndex(
@@ -122,6 +125,65 @@ export class TXEOraclePublicContext implements IAvmExecutionOracle {
122
125
  return value;
123
126
  }
124
127
 
128
+ getContractInstanceDeployer(address: AztecAddress): Promise<{ member: Fr; exists: boolean }[]> {
129
+ return this.getContractInstanceMember(address, i => i.deployer.toField());
130
+ }
131
+
132
+ getContractInstanceClassId(address: AztecAddress): Promise<{ member: Fr; exists: boolean }[]> {
133
+ // TXE has no contract updates, so the current class always equals the original.
134
+ return this.getContractInstanceMember(address, i => i.originalContractClassId);
135
+ }
136
+
137
+ getContractInstanceInitializationHash(address: AztecAddress): Promise<{ member: Fr; exists: boolean }[]> {
138
+ return this.getContractInstanceMember(address, i => i.initializationHash);
139
+ }
140
+
141
+ getContractInstanceImmutablesHash(address: AztecAddress): Promise<{ member: Fr; exists: boolean }[]> {
142
+ return this.getContractInstanceMember(address, i => i.immutablesHash);
143
+ }
144
+
145
+ // The one-element array mirrors the oracles' Noir return type, `[GetContractInstanceResult; 1]`.
146
+ private async getContractInstanceMember(
147
+ address: AztecAddress,
148
+ accessor: (instance: ContractInstancePreimageWithAddress) => Fr,
149
+ ): Promise<{ member: Fr; exists: boolean }[]> {
150
+ const instance = await this.contractStore.getContractInstance(address);
151
+ if (!instance) {
152
+ return [{ member: Fr.ZERO, exists: false }];
153
+ }
154
+ return [{ member: accessor(instance), exists: true }];
155
+ }
156
+
157
+ returndataSize(): Promise<number> {
158
+ throw new Error(
159
+ 'Contract calls are forbidden inside a `TestEnvironment::public_context`, use `public_call` instead',
160
+ );
161
+ }
162
+
163
+ returndataCopy(_rdOffset: number, _copySize: number): Promise<Fr[]> {
164
+ throw new Error(
165
+ 'Contract calls are forbidden inside a `TestEnvironment::public_context`, use `public_call` instead',
166
+ );
167
+ }
168
+
169
+ call(_l2Gas: number, _daGas: number, _address: AztecAddress, _argsLength: number, _args: Fr[]): Promise<void> {
170
+ throw new Error(
171
+ 'Contract calls are forbidden inside a `TestEnvironment::public_context`, use `public_call` instead',
172
+ );
173
+ }
174
+
175
+ staticCall(_l2Gas: number, _daGas: number, _address: AztecAddress, _argsLength: number, _args: Fr[]): Promise<void> {
176
+ throw new Error(
177
+ 'Contract calls are forbidden inside a `TestEnvironment::public_context`, use `public_call` instead',
178
+ );
179
+ }
180
+
181
+ successCopy(): Promise<boolean> {
182
+ throw new Error(
183
+ 'Contract calls are forbidden inside a `TestEnvironment::public_context`, use `public_call` instead',
184
+ );
185
+ }
186
+
125
187
  async close(): Promise<L2Block> {
126
188
  this.logger.debug('Exiting Public Context, building block with collected side effects', {
127
189
  blockNumber: this.globalVariables.blockNumber,