@aztec/txe 0.0.1-commit.3469e52 → 0.0.1-commit.350e0a4d

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 (170) hide show
  1. package/dest/AuthRegistry-2RDAZOGB.js +3 -0
  2. package/dest/AuthRegistry-2RDAZOGB.js.map +7 -0
  3. package/dest/ContractClassRegistry-L5F3G33N.js +3 -0
  4. package/dest/ContractClassRegistry-L5F3G33N.js.map +7 -0
  5. package/dest/ContractInstanceRegistry-IJOBAWAC.js +3 -0
  6. package/dest/ContractInstanceRegistry-IJOBAWAC.js.map +7 -0
  7. package/dest/FeeJuice-J3XDQPFS.js +3 -0
  8. package/dest/FeeJuice-J3XDQPFS.js.map +7 -0
  9. package/dest/HandshakeRegistry-QGWZJYVS.js +3 -0
  10. package/dest/HandshakeRegistry-QGWZJYVS.js.map +7 -0
  11. package/dest/MultiCallEntrypoint-WZHPRFJ6.js +3 -0
  12. package/dest/MultiCallEntrypoint-WZHPRFJ6.js.map +7 -0
  13. package/dest/SchnorrAccount-II4XD6MI.js +3 -0
  14. package/dest/SchnorrAccount-II4XD6MI.js.map +7 -0
  15. package/dest/SchnorrInitializerlessAccount-FXIOXUQQ.js +3 -0
  16. package/dest/SchnorrInitializerlessAccount-FXIOXUQQ.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 +61 -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-BJVAAXNA.js +3 -0
  26. package/dest/chunk-BJVAAXNA.js.map +7 -0
  27. package/dest/chunk-OMH3BDML.js +304 -0
  28. package/dest/chunk-OMH3BDML.js.map +7 -0
  29. package/dest/chunk-R3ZWQEFL.js +260 -0
  30. package/dest/chunk-R3ZWQEFL.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 +38140 -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 +61 -30
  45. package/dest/oracle/interfaces.d.ts.map +1 -1
  46. package/dest/oracle/test-resolver/default_fixtures.d.ts +9 -0
  47. package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
  48. package/dest/oracle/test-resolver/default_fixtures.js +207 -0
  49. package/dest/oracle/test-resolver/index.d.ts +9 -0
  50. package/dest/oracle/test-resolver/index.d.ts.map +1 -0
  51. package/dest/oracle/test-resolver/index.js +32 -0
  52. package/dest/oracle/test-resolver/resolver.d.ts +48 -0
  53. package/dest/oracle/test-resolver/resolver.d.ts.map +1 -0
  54. package/dest/oracle/test-resolver/resolver.js +181 -0
  55. package/dest/oracle/txe_oracle_public_context.d.ts +40 -16
  56. package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
  57. package/dest/oracle/txe_oracle_public_context.js +65 -17
  58. package/dest/oracle/txe_oracle_registry.d.ts +169 -0
  59. package/dest/oracle/txe_oracle_registry.d.ts.map +1 -0
  60. package/dest/oracle/txe_oracle_registry.js +745 -0
  61. package/dest/oracle/txe_oracle_top_level_context.d.ts +55 -29
  62. package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
  63. package/dest/oracle/txe_oracle_top_level_context.js +322 -104
  64. package/dest/oracle/txe_oracle_version.d.ts +17 -0
  65. package/dest/oracle/txe_oracle_version.d.ts.map +1 -0
  66. package/dest/oracle/txe_oracle_version.js +14 -0
  67. package/dest/oracle/txe_private_execution_oracle.d.ts +17 -0
  68. package/dest/oracle/txe_private_execution_oracle.d.ts.map +1 -0
  69. package/dest/oracle/txe_private_execution_oracle.js +15 -0
  70. package/dest/rpc_server.d.ts +14 -0
  71. package/dest/rpc_server.d.ts.map +1 -0
  72. package/dest/rpc_server.js +78 -0
  73. package/dest/rpc_translator.d.ts +112 -222
  74. package/dest/rpc_translator.d.ts.map +1 -1
  75. package/dest/rpc_translator.js +877 -600
  76. package/dest/server.bundle.js +3 -0
  77. package/dest/server.bundle.js.map +7 -0
  78. package/dest/state_machine/archiver.d.ts +7 -6
  79. package/dest/state_machine/archiver.d.ts.map +1 -1
  80. package/dest/state_machine/archiver.js +31 -22
  81. package/dest/state_machine/dummy_p2p_client.d.ts +29 -16
  82. package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
  83. package/dest/state_machine/dummy_p2p_client.js +53 -20
  84. package/dest/state_machine/global_variable_builder.d.ts +10 -6
  85. package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
  86. package/dest/state_machine/global_variable_builder.js +8 -5
  87. package/dest/state_machine/index.d.ts +13 -7
  88. package/dest/state_machine/index.d.ts.map +1 -1
  89. package/dest/state_machine/index.js +75 -21
  90. package/dest/state_machine/mock_epoch_cache.d.ts +21 -4
  91. package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
  92. package/dest/state_machine/mock_epoch_cache.js +35 -3
  93. package/dest/state_machine/synchronizer.d.ts +9 -6
  94. package/dest/state_machine/synchronizer.d.ts.map +1 -1
  95. package/dest/state_machine/synchronizer.js +10 -6
  96. package/dest/txe_session.d.ts +89 -16
  97. package/dest/txe_session.d.ts.map +1 -1
  98. package/dest/txe_session.js +366 -58
  99. package/dest/utils/block_creation.d.ts +6 -6
  100. package/dest/utils/block_creation.d.ts.map +1 -1
  101. package/dest/utils/block_creation.js +9 -7
  102. package/dest/utils/encoding.d.ts +192 -0
  103. package/dest/utils/encoding.d.ts.map +1 -0
  104. package/dest/{util → utils}/encoding.js +7 -2
  105. package/dest/{util → utils}/expected_failure_error.d.ts +1 -1
  106. package/dest/utils/expected_failure_error.d.ts.map +1 -0
  107. package/dest/utils/tx_effect_creation.d.ts +1 -1
  108. package/dest/utils/tx_effect_creation.d.ts.map +1 -1
  109. package/dest/utils/tx_effect_creation.js +0 -1
  110. package/dest/{util → utils}/txe_account_store.d.ts +1 -1
  111. package/dest/utils/txe_account_store.d.ts.map +1 -0
  112. package/dest/utils/txe_artifact_resolver.d.ts +37 -0
  113. package/dest/utils/txe_artifact_resolver.d.ts.map +1 -0
  114. package/dest/utils/txe_artifact_resolver.js +161 -0
  115. package/dest/utils/txe_public_contract_data_source.d.ts +20 -0
  116. package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -0
  117. package/dest/utils/txe_public_contract_data_source.js +51 -0
  118. package/dest/worker.bundle.js +3 -0
  119. package/dest/worker.bundle.js.map +7 -0
  120. package/dest/worker.d.ts +2 -0
  121. package/dest/worker.d.ts.map +1 -0
  122. package/dest/worker.js +92 -0
  123. package/package.json +38 -21
  124. package/src/bin/check_txe_oracle_version.ts +70 -0
  125. package/src/bin/index.ts +11 -2
  126. package/src/bin/oracle_test_server.ts +51 -0
  127. package/src/constants.ts +11 -1
  128. package/src/dispatcher_pool.ts +317 -0
  129. package/src/index.ts +99 -190
  130. package/src/msgpackr_fr_extension.ts +23 -0
  131. package/src/oracle/interfaces.ts +64 -35
  132. package/src/oracle/test-resolver/default_fixtures.ts +282 -0
  133. package/src/oracle/test-resolver/index.ts +44 -0
  134. package/src/oracle/test-resolver/resolver.ts +245 -0
  135. package/src/oracle/txe_oracle_public_context.ts +80 -20
  136. package/src/oracle/txe_oracle_registry.ts +536 -0
  137. package/src/oracle/txe_oracle_top_level_context.ts +430 -168
  138. package/src/oracle/txe_oracle_version.ts +17 -0
  139. package/src/oracle/txe_private_execution_oracle.ts +30 -0
  140. package/src/rpc_server.ts +87 -0
  141. package/src/rpc_translator.ts +1087 -974
  142. package/src/state_machine/archiver.ts +45 -26
  143. package/src/state_machine/dummy_p2p_client.ts +83 -32
  144. package/src/state_machine/global_variable_builder.ts +12 -11
  145. package/src/state_machine/index.ts +105 -40
  146. package/src/state_machine/mock_epoch_cache.ts +45 -4
  147. package/src/state_machine/synchronizer.ts +13 -7
  148. package/src/txe_session.ts +609 -128
  149. package/src/utils/block_creation.ts +10 -7
  150. package/src/{util → utils}/encoding.ts +8 -2
  151. package/src/utils/tx_effect_creation.ts +0 -2
  152. package/src/utils/txe_artifact_resolver.ts +217 -0
  153. package/src/utils/txe_public_contract_data_source.ts +60 -0
  154. package/src/worker.ts +98 -0
  155. package/dest/util/encoding.d.ts +0 -720
  156. package/dest/util/encoding.d.ts.map +0 -1
  157. package/dest/util/expected_failure_error.d.ts.map +0 -1
  158. package/dest/util/txe_account_store.d.ts.map +0 -1
  159. package/dest/util/txe_contract_store.d.ts +0 -12
  160. package/dest/util/txe_contract_store.d.ts.map +0 -1
  161. package/dest/util/txe_contract_store.js +0 -22
  162. package/dest/util/txe_public_contract_data_source.d.ts +0 -21
  163. package/dest/util/txe_public_contract_data_source.d.ts.map +0 -1
  164. package/dest/util/txe_public_contract_data_source.js +0 -67
  165. package/src/util/txe_contract_store.ts +0 -36
  166. package/src/util/txe_public_contract_data_source.ts +0 -86
  167. /package/dest/{util → utils}/expected_failure_error.js +0 -0
  168. /package/dest/{util → utils}/txe_account_store.js +0 -0
  169. /package/src/{util → utils}/expected_failure_error.ts +0 -0
  170. /package/src/{util → utils}/txe_account_store.ts +0 -0
@@ -2,7 +2,7 @@ import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_SUBTREE_HEIGHT
2
2
  import { CheckpointNumber, IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
3
3
  import { padArrayEnd } from '@aztec/foundation/collection';
4
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
- import { Body, L2BlockNew } from '@aztec/stdlib/block';
5
+ import { Body, L2Block } from '@aztec/stdlib/block';
6
6
  import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
7
7
  import { BlockHeader } from '@aztec/stdlib/tx';
8
8
  /**
@@ -12,10 +12,10 @@ import { BlockHeader } from '@aztec/stdlib/tx';
12
12
  */ export function getSingleTxBlockRequestHash(blockNumber) {
13
13
  return new Fr(blockNumber + 9999); // Why does this need to be a high number? Why do small numbered nullifiers already exist?
14
14
  }
15
- export async function insertTxEffectIntoWorldTrees(txEffect, worldTrees) {
15
+ export async function insertTxEffectIntoWorldTrees(txEffect, worldTrees, l1ToL2Messages = []) {
16
16
  await worldTrees.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, padArrayEnd(txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX));
17
17
  await worldTrees.batchInsert(MerkleTreeId.NULLIFIER_TREE, padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map((nullifier)=>nullifier.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
18
- await worldTrees.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, padArrayEnd(txEffect.l2ToL1Msgs, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
18
+ await worldTrees.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
19
19
  // We do not need to add public data writes because we apply them as we go.
20
20
  }
21
21
  export async function makeTXEBlockHeader(worldTrees, globalVariables) {
@@ -31,7 +31,7 @@ export async function makeTXEBlockHeader(worldTrees, globalVariables) {
31
31
  });
32
32
  }
33
33
  /**
34
- * Creates an L2BlockNew with proper archive chaining.
34
+ * Creates an L2Block with proper archive chaining.
35
35
  * This function:
36
36
  * 1. Gets the current archive state as lastArchive for the header
37
37
  * 2. Creates the block header
@@ -41,7 +41,7 @@ export async function makeTXEBlockHeader(worldTrees, globalVariables) {
41
41
  * @param worldTrees - The world trees to read/write from
42
42
  * @param globalVariables - Global variables for the block
43
43
  * @param txEffects - Transaction effects to include in the block
44
- * @returns The created L2BlockNew with proper archive chaining
44
+ * @returns The created L2Block with proper archive chaining
45
45
  */ export async function makeTXEBlock(worldTrees, globalVariables, txEffects) {
46
46
  const header = await makeTXEBlockHeader(worldTrees, globalVariables);
47
47
  // Update the archive tree with this block's header hash
@@ -49,8 +49,10 @@ export async function makeTXEBlockHeader(worldTrees, globalVariables) {
49
49
  // Get the new archive state after updating
50
50
  const newArchiveInfo = await worldTrees.getTreeInfo(MerkleTreeId.ARCHIVE);
51
51
  const newArchive = new AppendOnlyTreeSnapshot(new Fr(newArchiveInfo.root), Number(newArchiveInfo.size));
52
- // L2BlockNew requires checkpointNumber and indexWithinCheckpoint
52
+ // L2Block requires checkpointNumber and indexWithinCheckpoint.
53
+ // TXE uses 1-block-per-checkpoint for testing simplicity, so we can use block number as checkpoint number.
54
+ // This uses the deprecated fromBlockNumber method intentionally for the TXE testing environment.
53
55
  const checkpointNumber = CheckpointNumber.fromBlockNumber(globalVariables.blockNumber);
54
56
  const indexWithinCheckpoint = IndexWithinCheckpoint(0);
55
- return new L2BlockNew(newArchive, header, new Body(txEffects), checkpointNumber, indexWithinCheckpoint);
57
+ return new L2Block(newArchive, header, new Body(txEffects), checkpointNumber, indexWithinCheckpoint);
56
58
  }
@@ -0,0 +1,192 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { EthAddress } from '@aztec/foundation/eth-address';
3
+ import { type ContractArtifact } from '@aztec/stdlib/abi';
4
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
+ import { BlockHash } from '@aztec/stdlib/block';
6
+ import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
7
+ import { z } from 'zod';
8
+ export type ForeignCallSingle = string;
9
+ export type ForeignCallArray = string[];
10
+ export type ForeignCallArgs = (ForeignCallSingle | ForeignCallArray | ContractArtifact | ContractInstanceWithAddress)[];
11
+ export type ForeignCallResult = {
12
+ values: (ForeignCallSingle | ForeignCallArray)[];
13
+ };
14
+ export declare function fromSingle(obj: ForeignCallSingle): Fr;
15
+ export declare function addressFromSingle(obj: ForeignCallSingle): AztecAddress;
16
+ export declare function blockHashFromSingle(obj: ForeignCallSingle): BlockHash;
17
+ export declare function fromArray(obj: ForeignCallArray): Fr[];
18
+ /**
19
+ * Converts an array of Noir unsigned integers to a single tightly-packed buffer.
20
+ * @param uintBitSize If it's an array of Noir u8's, put `8`, etc.
21
+ * @returns A buffer where each byte is correctly represented as a single byte in the buffer.
22
+ */
23
+ export declare function fromUintArray(obj: ForeignCallArray, uintBitSize: number): Buffer;
24
+ /**
25
+ * Converts a Noir BoundedVec of unsigned integers into a Buffer. Note that BoundedVecs are structs, and therefore
26
+ * translated as two separate ForeignCallArray and ForeignCallSingle values (an array and a single field).
27
+ *
28
+ * @param storage The array with the BoundedVec's storage (i.e. BoundedVec::storage())
29
+ * @param length The length of the BoundedVec (i.e. BoundedVec::len())
30
+ * @param uintBitSize If it's an array of Noir u8's, put `8`, etc.
31
+ * @returns A buffer containing the unsigned integers tightly packed
32
+ */
33
+ export declare function fromUintBoundedVec(storage: ForeignCallArray, length: ForeignCallSingle, uintBitSize: number): Buffer;
34
+ export declare function toSingle(value: AztecAddress | EthAddress | Fr | Buffer | boolean | number | bigint): ForeignCallSingle;
35
+ export declare function toArray(objs: Fr[]): ForeignCallArray;
36
+ export declare function toSingleOrArray(value: Fr | Fr[]): string | string[];
37
+ export declare function bufferToU8Array(buffer: Buffer): ForeignCallArray;
38
+ /**
39
+ * Converts a ForeignCallArray into a tuple which represents a nr BoundedVec.
40
+ * If the input array is shorter than the maxLen, it pads the result with zeros,
41
+ * so that nr can correctly coerce this result into a BoundedVec.
42
+ * @param bVecStorage - The array underlying the BoundedVec.
43
+ * @param maxLen - the max length of the BoundedVec.
44
+ * @returns a tuple representing a BoundedVec.
45
+ */
46
+ export declare function arrayToBoundedVec(bVecStorage: ForeignCallArray, maxLen: number): [ForeignCallArray, ForeignCallSingle];
47
+ /**
48
+ * Converts an array of arrays representing Noir BoundedVec of nested arrays into its Noir serialized form.
49
+ * @param bVecStorage - The array underlying the BoundedVec.
50
+ * @param maxLen - The max length of the BoundedVec (max num of the nested arrays in the BoundedVec).
51
+ * @param nestedArrayLength - The length of the nested arrays (each nested array has to have the same length).
52
+ * @returns Serialized BoundedVec following Noir intrinsic serialization.
53
+ */
54
+ export declare function arrayOfArraysToBoundedVecOfArrays(bVecStorage: ForeignCallArray[], maxLen: number, nestedArrayLength: number): [ForeignCallArray, ForeignCallSingle];
55
+ export declare function toForeignCallResult(obj: (ForeignCallSingle | ForeignCallArray)[]): {
56
+ values: (string | ForeignCallArray)[];
57
+ };
58
+ export declare const ForeignCallSingleSchema: z.ZodString;
59
+ export declare const ForeignCallArraySchema: z.ZodArray<z.ZodString>;
60
+ export declare const ForeignCallArgsSchema: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodObject<{
61
+ name: z.ZodString;
62
+ aztecVersion: z.ZodDefault<z.ZodString>;
63
+ functions: z.ZodArray<z.ZodIntersection<z.ZodObject<{
64
+ name: z.ZodString;
65
+ functionType: z.ZodEnum<typeof import("@aztec/stdlib/abi").FunctionType>;
66
+ isOnlySelf: z.ZodBoolean;
67
+ isStatic: z.ZodBoolean;
68
+ isInitializer: z.ZodBoolean;
69
+ parameters: z.ZodArray<z.ZodObject<{
70
+ name: z.ZodString;
71
+ type: z.ZodType<import("@aztec/stdlib/abi").AbiType, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiType, unknown>>;
72
+ visibility: z.ZodEnum<{
73
+ databus: "databus";
74
+ private: "private";
75
+ public: "public";
76
+ }>;
77
+ }, z.core.$strip>>;
78
+ returnTypes: z.ZodArray<z.ZodType<import("@aztec/stdlib/abi").AbiType, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiType, unknown>>>;
79
+ errorTypes: z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
80
+ error_kind: z.ZodLiteral<"string">;
81
+ string: z.ZodString;
82
+ }, z.core.$strip>, z.ZodObject<{
83
+ error_kind: z.ZodLiteral<"fmtstring">;
84
+ length: z.ZodNumber;
85
+ item_types: z.ZodArray<z.ZodType<import("@aztec/stdlib/abi").AbiType, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiType, unknown>>>;
86
+ }, z.core.$strip>, z.ZodIntersection<z.ZodObject<{
87
+ error_kind: z.ZodLiteral<"custom">;
88
+ }, z.core.$strip>, z.ZodType<import("@aztec/stdlib/abi").AbiType, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiType, unknown>>>]>>>;
89
+ }, z.core.$strip>, z.ZodObject<{
90
+ bytecode: import("@aztec/foundation/schemas").ZodFor<Buffer<ArrayBufferLike>>;
91
+ verificationKey: z.ZodOptional<z.ZodString>;
92
+ debugSymbols: z.ZodString;
93
+ debug: z.ZodOptional<z.ZodObject<{
94
+ debugSymbols: z.ZodObject<{
95
+ location_tree: z.ZodObject<{
96
+ locations: z.ZodArray<z.ZodObject<{
97
+ parent: z.ZodNullable<z.ZodNumber>;
98
+ value: z.ZodObject<{
99
+ span: z.ZodObject<{
100
+ start: z.ZodNumber;
101
+ end: z.ZodNumber;
102
+ }, z.core.$strip>;
103
+ file: z.ZodNumber;
104
+ }, z.core.$strip>;
105
+ }, z.core.$strip>>;
106
+ }, z.core.$strip>;
107
+ acir_locations: z.ZodRecord<z.ZodString, z.ZodNumber>;
108
+ brillig_locations: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodNumber>>;
109
+ }, z.core.$strip>;
110
+ files: z.ZodRecord<z.ZodString, z.ZodObject<{
111
+ source: z.ZodString;
112
+ path: z.ZodString;
113
+ function_locations: z.ZodArray<z.ZodObject<{
114
+ start: z.ZodNumber;
115
+ name: z.ZodString;
116
+ }, z.core.$strip>>;
117
+ }, z.core.$strip>>;
118
+ }, z.core.$strip>>;
119
+ }, z.core.$strip>>>;
120
+ nonDispatchPublicFunctions: z.ZodArray<z.ZodObject<{
121
+ name: z.ZodString;
122
+ functionType: z.ZodEnum<typeof import("@aztec/stdlib/abi").FunctionType>;
123
+ isOnlySelf: z.ZodBoolean;
124
+ isStatic: z.ZodBoolean;
125
+ isInitializer: z.ZodBoolean;
126
+ parameters: z.ZodArray<z.ZodObject<{
127
+ name: z.ZodString;
128
+ type: z.ZodType<import("@aztec/stdlib/abi").AbiType, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiType, unknown>>;
129
+ visibility: z.ZodEnum<{
130
+ databus: "databus";
131
+ private: "private";
132
+ public: "public";
133
+ }>;
134
+ }, z.core.$strip>>;
135
+ returnTypes: z.ZodArray<z.ZodType<import("@aztec/stdlib/abi").AbiType, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiType, unknown>>>;
136
+ errorTypes: z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
137
+ error_kind: z.ZodLiteral<"string">;
138
+ string: z.ZodString;
139
+ }, z.core.$strip>, z.ZodObject<{
140
+ error_kind: z.ZodLiteral<"fmtstring">;
141
+ length: z.ZodNumber;
142
+ item_types: z.ZodArray<z.ZodType<import("@aztec/stdlib/abi").AbiType, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiType, unknown>>>;
143
+ }, z.core.$strip>, z.ZodIntersection<z.ZodObject<{
144
+ error_kind: z.ZodLiteral<"custom">;
145
+ }, z.core.$strip>, z.ZodType<import("@aztec/stdlib/abi").AbiType, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiType, unknown>>>]>>>;
146
+ }, z.core.$strip>>;
147
+ outputs: z.ZodObject<{
148
+ structs: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodType<import("@aztec/stdlib/abi").AbiType, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiType, unknown>>>>, z.ZodTransform<Record<string, import("@aztec/stdlib/abi").AbiType[]>, Record<string, import("@aztec/stdlib/abi").AbiType[]>>>;
149
+ globals: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodType<import("@aztec/stdlib/abi").AbiValue, unknown, z.core.$ZodTypeInternals<import("@aztec/stdlib/abi").AbiValue, unknown>>>>;
150
+ }, z.core.$strip>;
151
+ storageLayout: z.ZodRecord<z.ZodString, z.ZodObject<{
152
+ slot: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
153
+ }, z.core.$strip>>;
154
+ fileMap: z.ZodRecord<z.ZodCoercedNumber<unknown>, z.ZodObject<{
155
+ source: z.ZodString;
156
+ path: z.ZodString;
157
+ function_locations: z.ZodArray<z.ZodObject<{
158
+ start: z.ZodNumber;
159
+ name: z.ZodString;
160
+ }, z.core.$strip>>;
161
+ }, z.core.$strip>>;
162
+ }, z.core.$strip>, z.ZodIntersection<z.ZodIntersection<z.ZodObject<{
163
+ version: z.ZodLiteral<2>;
164
+ salt: import("@aztec/foundation/schemas").ZodFor<Fr>;
165
+ deployer: import("@aztec/foundation/schemas").ZodFor<AztecAddress>;
166
+ originalContractClassId: import("@aztec/foundation/schemas").ZodFor<Fr>;
167
+ initializationHash: import("@aztec/foundation/schemas").ZodFor<Fr>;
168
+ immutablesHash: import("@aztec/foundation/schemas").ZodFor<Fr>;
169
+ publicKeys: z.ZodPipe<z.ZodObject<{
170
+ npkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
171
+ ivpkM: z.ZodType<import("@aztec/foundation/schemas").Point, string, z.core.$ZodTypeInternals<import("@aztec/foundation/schemas").Point, string>>;
172
+ ovpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
173
+ tpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
174
+ mspkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
175
+ fbpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
176
+ }, z.core.$strip>, z.ZodTransform<import("@aztec/stdlib/keys").PublicKeys, {
177
+ npkMHash: Fr;
178
+ ivpkM: import("@aztec/foundation/schemas").Point;
179
+ ovpkMHash: Fr;
180
+ tpkMHash: Fr;
181
+ mspkMHash: Fr;
182
+ fbpkMHash: Fr;
183
+ }>>;
184
+ }, z.core.$strip>, z.ZodObject<{
185
+ currentContractClassId: import("@aztec/foundation/schemas").ZodFor<Fr>;
186
+ }, z.core.$strip>>, z.ZodObject<{
187
+ address: import("@aztec/foundation/schemas").ZodFor<AztecAddress>;
188
+ }, z.core.$strip>>]>>;
189
+ export declare const ForeignCallResultSchema: z.ZodObject<{
190
+ values: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
191
+ }, z.core.$strip>;
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQTBCLE1BQU0sbUJBQW1CLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsS0FBSywyQkFBMkIsRUFBcUMsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE1BQU0sTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFFdkMsTUFBTSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sRUFBRSxDQUFDO0FBRXhDLE1BQU0sTUFBTSxlQUFlLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsR0FBRyxnQkFBZ0IsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLENBQUM7QUFFeEgsTUFBTSxNQUFNLGlCQUFpQixHQUFHO0lBQzlCLE1BQU0sRUFBRSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztDQUNsRCxDQUFDO0FBRUYsd0JBQWdCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLE1BRWhEO0FBRUQsd0JBQWdCLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxpQkFBaUIsZ0JBRXZEO0FBRUQsd0JBQWdCLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxpQkFBaUIsYUFFekQ7QUFFRCx3QkFBZ0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsUUFFOUM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBTWhGO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FPcEg7QUFJRCx3QkFBZ0IsUUFBUSxDQUN0QixLQUFLLEVBQUUsWUFBWSxHQUFHLFVBQVUsR0FBRyxFQUFFLEdBQUcsTUFBTSxHQUFHLE9BQU8sR0FBRyxNQUFNLEdBQUcsTUFBTSxHQUN6RSxpQkFBaUIsQ0FZbkI7QUFFRCx3QkFBZ0IsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxnQkFBZ0IsQ0FFcEQ7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLHFCQUUvQztBQUVELHdCQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxnQkFBZ0IsQ0FFaEU7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLGlCQUFpQixDQUMvQixXQUFXLEVBQUUsZ0JBQWdCLEVBQzdCLE1BQU0sRUFBRSxNQUFNLEdBQ2IsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxDQVl2QztBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixpQ0FBaUMsQ0FDL0MsV0FBVyxFQUFFLGdCQUFnQixFQUFFLEVBQy9CLE1BQU0sRUFBRSxNQUFNLEVBQ2QsaUJBQWlCLEVBQUUsTUFBTSxHQUN4QixDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBc0J2QztBQUVELHdCQUFnQixtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFOztFQUVoRjtBQUVELGVBQU8sTUFBTSx1QkFBdUIsYUFBYSxDQUFDO0FBRWxELGVBQU8sTUFBTSxzQkFBc0IseUJBQXNCLENBQUM7QUFFMUQsZUFBTyxNQUFNLHFCQUFxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBRWpDLENBQUM7QUFFRixlQUFPLE1BQU0sdUJBQXVCOztpQkFFbEMsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,KAAK,2BAA2B,EAAqC,MAAM,wBAAwB,CAAC;AAE7G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG,CAAC,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,2BAA2B,CAAC,EAAE,CAAC;AAExH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;CAClD,CAAC;AAEF,wBAAgB,UAAU,CAAC,GAAG,EAAE,iBAAiB,MAEhD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,gBAEvD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,aAEzD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,gBAAgB,QAE9C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAOpH;AAID,wBAAgB,QAAQ,CACtB,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GACzE,iBAAiB,CAYnB;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,gBAAgB,CAEpD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,qBAE/C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,MAAM,GACb,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAYvC;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,gBAAgB,EAAE,EAC/B,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,GACxB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAsBvC;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE;;EAEhF;AAED,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,eAAO,MAAM,sBAAsB,yBAAsB,CAAC;AAE1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAEjC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;iBAElC,CAAC"}
@@ -2,6 +2,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { hexToBuffer } from '@aztec/foundation/string';
3
3
  import { ContractArtifactSchema } from '@aztec/stdlib/abi';
4
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
+ import { BlockHash } from '@aztec/stdlib/block';
5
6
  import { ContractInstanceWithAddressSchema } from '@aztec/stdlib/contract';
6
7
  import { z } from 'zod';
7
8
  export function fromSingle(obj) {
@@ -10,6 +11,9 @@ export function fromSingle(obj) {
10
11
  export function addressFromSingle(obj) {
11
12
  return new AztecAddress(fromSingle(obj));
12
13
  }
14
+ export function blockHashFromSingle(obj) {
15
+ return new BlockHash(fromSingle(obj));
16
+ }
13
17
  export function fromArray(obj) {
14
18
  return obj.map((str)=>Fr.fromBuffer(hexToBuffer(str)));
15
19
  }
@@ -102,8 +106,9 @@ export function bufferToU8Array(buffer) {
102
106
  }
103
107
  const flattenedStorage = bVecStorage.flat();
104
108
  const numFieldsToPad = maxLen * nestedArrayLength - flattenedStorage.length;
105
- const flattenedStorageWithPadding = flattenedStorage.concat(Array(numFieldsToPad).fill(new Fr(0)));
106
- // At last we get the actual length of the BoundedVec and return the values.
109
+ // Pad with hex-encoded zeros so the result is uniformly `ForeignCallSingle` (string); raw Fr
110
+ // instances would JSON-serialize as `{ asBigInt: "0" }` and nargo would reject the response.
111
+ const flattenedStorageWithPadding = flattenedStorage.concat(toArray(Array(numFieldsToPad).fill(new Fr(0))));
107
112
  const len = toSingle(new Fr(bVecStorage.length));
108
113
  return [
109
114
  flattenedStorageWithPadding,
@@ -1,4 +1,4 @@
1
1
  export declare class ExpectedFailureError extends Error {
2
2
  constructor(message: string);
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZWN0ZWRfZmFpbHVyZV9lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZXhwZWN0ZWRfZmFpbHVyZV9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBYSxvQkFBcUIsU0FBUSxLQUFLO0lBQzdDLFlBQVksT0FBTyxFQUFFLE1BQU0sRUFFMUI7Q0FDRiJ9
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZWN0ZWRfZmFpbHVyZV9lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2V4cGVjdGVkX2ZhaWx1cmVfZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQWEsb0JBQXFCLFNBQVEsS0FBSztJQUM3QyxZQUFZLE9BQU8sRUFBRSxNQUFNLEVBRTFCO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expected_failure_error.d.ts","sourceRoot":"","sources":["../../src/utils/expected_failure_error.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF"}
@@ -2,4 +2,4 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import type { ExecutionNoteCache } from '@aztec/pxe/simulator';
3
3
  import { TxEffect } from '@aztec/stdlib/tx';
4
4
  export declare function makeTxEffect(noteCache: ExecutionNoteCache, txBlockNumber: BlockNumber): Promise<TxEffect>;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZWZmZWN0X2NyZWF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHhfZWZmZWN0X2NyZWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxRQUFRLEVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCx3QkFBc0IsWUFBWSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0F1Qi9HIn0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZWZmZWN0X2NyZWF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHhfZWZmZWN0X2NyZWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxRQUFRLEVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCx3QkFBc0IsWUFBWSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FxQi9HIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"tx_effect_creation.d.ts","sourceRoot":"","sources":["../../src/utils/tx_effect_creation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAU,MAAM,kBAAkB,CAAC;AAEpD,wBAAsB,YAAY,CAAC,SAAS,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuB/G"}
1
+ {"version":3,"file":"tx_effect_creation.d.ts","sourceRoot":"","sources":["../../src/utils/tx_effect_creation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAU,MAAM,kBAAkB,CAAC;AAEpD,wBAAsB,YAAY,CAAC,SAAS,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqB/G"}
@@ -3,7 +3,6 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash } from '@azte
3
3
  import { TxEffect, TxHash } from '@aztec/stdlib/tx';
4
4
  export async function makeTxEffect(noteCache, txBlockNumber) {
5
5
  const txEffect = TxEffect.empty();
6
- noteCache.finish();
7
6
  const nonceGenerator = noteCache.getNonceGenerator();
8
7
  txEffect.noteHashes = await Promise.all(noteCache.getAllNotes().map(async (pendingNote, i)=>computeUniqueNoteHash(await computeNoteHashNonce(nonceGenerator, i), await siloNoteHash(pendingNote.note.contractAddress, pendingNote.noteHashForConsumption))));
9
8
  // Nullifiers are already siloed
@@ -7,4 +7,4 @@ export declare class TXEAccountStore {
7
7
  getAccount(key: AztecAddress): Promise<CompleteAddress>;
8
8
  setAccount(key: AztecAddress, value: CompleteAddress): Promise<void>;
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX2FjY291bnRfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3R4ZV9hY2NvdW50X3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxxQkFBYSxlQUFlOztJQUcxQixZQUFZLEtBQUssRUFBRSxpQkFBaUIsRUFFbkM7SUFFSyxVQUFVLENBQUMsR0FBRyxFQUFFLFlBQVksNEJBTWpDO0lBRUssVUFBVSxDQUFDLEdBQUcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGVBQWUsaUJBRXpEO0NBQ0YifQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX2FjY291bnRfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90eGVfYWNjb3VudF9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQscUJBQWEsZUFBZTs7SUFHMUIsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBRW5DO0lBRUssVUFBVSxDQUFDLEdBQUcsRUFBRSxZQUFZLDRCQU1qQztJQUVLLFVBQVUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxlQUFlLGlCQUV6RDtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txe_account_store.d.ts","sourceRoot":"","sources":["../../src/utils/txe_account_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,qBAAa,eAAe;;IAG1B,YAAY,KAAK,EAAE,iBAAiB,EAEnC;IAEK,UAAU,CAAC,GAAG,EAAE,YAAY,4BAMjC;IAEK,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,iBAEzD;CACF"}
@@ -0,0 +1,37 @@
1
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import { type ContractInstanceWithAddress } from '@aztec/aztec.js/contracts';
3
+ import { Fr } from '@aztec/aztec.js/fields';
4
+ import type { ContractStore } from '@aztec/pxe/client/lazy';
5
+ import type { ContractArtifactWithHash } from '@aztec/stdlib/contract';
6
+ export interface ResolvedArtifact {
7
+ artifact: ContractArtifactWithHash;
8
+ instance: ContractInstanceWithAddress;
9
+ }
10
+ /**
11
+ * Resolves and caches contract artifacts and their associated instances.
12
+ *
13
+ * Artifact hash computation is expensive, so this service deduplicates both completed and in-flight computations.
14
+ * Two cache levels are kept: full deploys (artifact + computed instance) keyed by the full deploy context, and loaded +
15
+ * hashed artifacts keyed by the compiled-bytecode hash so deploys of the same contract with different args / salt /
16
+ * deployer reuse the same `ContractArtifactWithHash`.
17
+ */
18
+ export declare class TXEArtifactResolver {
19
+ #private;
20
+ private readonly contractStore;
21
+ private readonly schnorrClassId;
22
+ constructor(contractStore: ContractStore, schnorrClassId: Fr);
23
+ /** Resolves the Schnorr account contract artifact and instance for the given secret, caching the result. */
24
+ resolveAccountArtifact(secret: Fr): Promise<ResolvedArtifact>;
25
+ /** Resolves a contract artifact from disk by path, computes its instance, and caches the result. */
26
+ resolveDeployArtifact({ rootPath, packageName, contractPath, initializer, args, secret, salt, deployer }: {
27
+ rootPath: string;
28
+ packageName: string;
29
+ contractPath: string;
30
+ initializer: string;
31
+ args: Fr[];
32
+ secret: Fr;
33
+ salt: Fr;
34
+ deployer: AztecAddress;
35
+ }): Promise<ResolvedArtifact>;
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX2FydGlmYWN0X3Jlc29sdmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHhlX2FydGlmYWN0X3Jlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsS0FBSywyQkFBMkIsRUFFakMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHNUMsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVF2RSxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQztJQUNuQyxRQUFRLEVBQUUsMkJBQTJCLENBQUM7Q0FDdkM7QUFpQ0Q7Ozs7Ozs7R0FPRztBQUNILHFCQUFhLG1CQUFtQjs7SUFNNUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhO0lBQzlCLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYztJQUZqQyxZQUNtQixhQUFhLEVBQUUsYUFBYSxFQUM1QixjQUFjLEVBQUUsRUFBRSxFQUNqQztJQUVKLDRHQUE0RztJQUM1RyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUk1RDtJQUVELG9HQUFvRztJQUM5RixxQkFBcUIsQ0FBQyxFQUMxQixRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixXQUFXLEVBQ1gsSUFBSSxFQUNKLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNULEVBQUU7UUFDRCxRQUFRLEVBQUUsTUFBTSxDQUFDO1FBQ2pCLFdBQVcsRUFBRSxNQUFNLENBQUM7UUFDcEIsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUNyQixXQUFXLEVBQUUsTUFBTSxDQUFDO1FBQ3BCLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNYLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDWCxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ1QsUUFBUSxFQUFFLFlBQVksQ0FBQztLQUN4QixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQXdCNUI7Q0E4RkYifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txe_artifact_resolver.d.ts","sourceRoot":"","sources":["../../src/utils/txe_artifact_resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,KAAK,2BAA2B,EAEjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAG5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAQvE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,wBAAwB,CAAC;IACnC,QAAQ,EAAE,2BAA2B,CAAC;CACvC;AAiCD;;;;;;;GAOG;AACH,qBAAa,mBAAmB;;IAM5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAFjC,YACmB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,EAAE,EACjC;IAEJ,4GAA4G;IAC5G,sBAAsB,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAI5D;IAED,oGAAoG;IAC9F,qBAAqB,CAAC,EAC1B,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,QAAQ,EACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,EAAE,EAAE,CAAC;QACX,MAAM,EAAE,EAAE,CAAC;QACX,IAAI,EAAE,EAAE,CAAC;QACT,QAAQ,EAAE,YAAY,CAAC;KACxB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwB5B;CA8FF"}
@@ -0,0 +1,161 @@
1
+ import { loadContractArtifact } from '@aztec/aztec.js/abi';
2
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
3
+ import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
4
+ import { Fr } from '@aztec/aztec.js/fields';
5
+ import { PublicKeys, deriveKeys } from '@aztec/aztec.js/keys';
6
+ import { createLogger } from '@aztec/foundation/log';
7
+ import { computeArtifactHash } from '@aztec/stdlib/contract';
8
+ import { createHash } from 'crypto';
9
+ import { createReadStream } from 'fs';
10
+ import { readFile, readdir } from 'fs/promises';
11
+ import { join, parse } from 'path';
12
+ /**
13
+ * Cache + in-flight map pair. Lookup hits the cache, then awaits an in-flight `compute()` if one
14
+ * exists, otherwise starts one and stores it. Guarantees `compute()` runs at most once per `key`
15
+ * across concurrent callers, which matters because `computeArtifactHash` is expensive.
16
+ */ class AsyncCache {
17
+ #cache = new Map();
18
+ #inFlight = new Map();
19
+ getOrCompute(key, compute) {
20
+ const cached = this.#cache.get(key);
21
+ if (cached !== undefined) {
22
+ return Promise.resolve(cached);
23
+ }
24
+ let pending = this.#inFlight.get(key);
25
+ if (!pending) {
26
+ pending = (async ()=>{
27
+ try {
28
+ const value = await compute();
29
+ this.#cache.set(key, value);
30
+ return value;
31
+ } finally{
32
+ this.#inFlight.delete(key);
33
+ }
34
+ })();
35
+ this.#inFlight.set(key, pending);
36
+ }
37
+ return pending;
38
+ }
39
+ }
40
+ /**
41
+ * Resolves and caches contract artifacts and their associated instances.
42
+ *
43
+ * Artifact hash computation is expensive, so this service deduplicates both completed and in-flight computations.
44
+ * Two cache levels are kept: full deploys (artifact + computed instance) keyed by the full deploy context, and loaded +
45
+ * hashed artifacts keyed by the compiled-bytecode hash so deploys of the same contract with different args / salt /
46
+ * deployer reuse the same `ContractArtifactWithHash`.
47
+ */ export class TXEArtifactResolver {
48
+ contractStore;
49
+ schnorrClassId;
50
+ #deployments;
51
+ #artifacts;
52
+ #logger;
53
+ constructor(contractStore, schnorrClassId){
54
+ this.contractStore = contractStore;
55
+ this.schnorrClassId = schnorrClassId;
56
+ this.#deployments = new AsyncCache();
57
+ this.#artifacts = new AsyncCache();
58
+ this.#logger = createLogger('txe:artifact_resolver');
59
+ }
60
+ /** Resolves the Schnorr account contract artifact and instance for the given secret, caching the result. */ resolveAccountArtifact(secret) {
61
+ return this.#deployments.getOrCompute(`SchnorrAccountContract-${secret}`, ()=>this.#computeAccountArtifact(secret));
62
+ }
63
+ /** Resolves a contract artifact from disk by path, computes its instance, and caches the result. */ async resolveDeployArtifact({ rootPath, packageName, contractPath, initializer, args, secret, salt, deployer }) {
64
+ const publicKeys = secret.equals(Fr.ZERO) ? PublicKeys.default() : (await deriveKeys(secret)).publicKeys;
65
+ const publicKeysHash = await publicKeys.hash();
66
+ const artifactPath = await this.#resolveArtifactPath(rootPath, packageName, contractPath);
67
+ const fileHash = await this.#fastHashFile(artifactPath);
68
+ const { dir: contractDirectory, base: contractFilename } = parse(contractPath);
69
+ const cacheKey = `${contractDirectory ?? ''}-${contractFilename}-${initializer}-${args.map((arg)=>arg.toString()).join('-')}-${publicKeysHash}-${salt}-${deployer}-${fileHash}`;
70
+ return this.#deployments.getOrCompute(cacheKey, ()=>this.#computeDeployArtifact(artifactPath, fileHash, initializer, args, salt, publicKeys, publicKeysHash, deployer));
71
+ }
72
+ async #resolveArtifactPath(rootPath, packageName, contractPath) {
73
+ const { dir: contractDirectory, base: contractFilename } = parse(contractPath);
74
+ if (contractDirectory) {
75
+ if (contractDirectory.includes('@')) {
76
+ // env.deploy("../path/to/workspace/root@packageName/contractName")
77
+ const [workspace, pkg] = contractDirectory.split('@');
78
+ const targetPath = join(rootPath, workspace, '/target');
79
+ this.#logger.debug(`Looking for compiled artifact in workspace ${targetPath}`);
80
+ return join(targetPath, `${pkg}-${contractFilename}.json`);
81
+ } else {
82
+ // env.deploy("../path/to/contract/root/contractName")
83
+ const targetPath = join(rootPath, contractDirectory, '/target');
84
+ this.#logger.debug(`Looking for compiled artifact in ${targetPath}`);
85
+ const [artifactPath] = (await readdir(targetPath)).filter((file)=>file.endsWith(`-${contractFilename}.json`));
86
+ return artifactPath;
87
+ }
88
+ } else {
89
+ // env.deploy("contractName")
90
+ return join(rootPath, './target', `${packageName}-${contractFilename}.json`);
91
+ }
92
+ }
93
+ async #computeAccountArtifact(secret) {
94
+ const [artifactFromStore, classWithPreimage] = await Promise.all([
95
+ this.contractStore.getContractArtifact(this.schnorrClassId),
96
+ this.contractStore.getContractClassWithPreimage(this.schnorrClassId)
97
+ ]);
98
+ if (!artifactFromStore || !classWithPreimage) {
99
+ throw new Error(`SchnorrAccount not found in shared contract store at class id ${this.schnorrClassId.toString()}`);
100
+ }
101
+ const artifact = {
102
+ ...artifactFromStore,
103
+ artifactHash: classWithPreimage.artifactHash
104
+ };
105
+ const keys = await deriveKeys(secret);
106
+ const args = [
107
+ keys.publicKeys.ivpkM.x,
108
+ keys.publicKeys.ivpkM.y
109
+ ];
110
+ const instance = await getContractInstanceFromInstantiationParams(artifact, {
111
+ constructorArgs: args,
112
+ skipArgsDecoding: true,
113
+ salt: Fr.ONE,
114
+ publicKeys: keys.publicKeys,
115
+ constructorArtifact: 'constructor',
116
+ deployer: AztecAddress.ZERO
117
+ });
118
+ return {
119
+ artifact,
120
+ instance
121
+ };
122
+ }
123
+ async #computeDeployArtifact(artifactPath, fileHash, initializer, args, salt, publicKeys, publicKeysHash, deployer) {
124
+ // Inner cache: artifact load + hash depends only on the compiled bytecode (`fileHash`), so subsequent deploys of
125
+ // the same contract — regardless of constructor args / deployer / salt — reuse the same `ContractArtifactWithHash`.
126
+ const artifact = await this.#artifacts.getOrCompute(fileHash, async ()=>{
127
+ this.#logger.debug(`Loading compiled artifact ${artifactPath}`);
128
+ const artifactJSON = JSON.parse(await readFile(artifactPath, 'utf-8'));
129
+ const artifactWithoutHash = loadContractArtifact(artifactJSON);
130
+ return {
131
+ ...artifactWithoutHash,
132
+ artifactHash: await computeArtifactHash(artifactWithoutHash)
133
+ };
134
+ });
135
+ this.#logger.debug(`Deploy ${artifact.name} with initializer ${initializer}(${args}) and public keys hash ${publicKeysHash}`);
136
+ const instance = await getContractInstanceFromInstantiationParams(artifact, {
137
+ constructorArgs: args,
138
+ skipArgsDecoding: true,
139
+ salt,
140
+ publicKeys,
141
+ constructorArtifact: initializer || undefined,
142
+ deployer
143
+ });
144
+ return {
145
+ artifact,
146
+ instance
147
+ };
148
+ }
149
+ #fastHashFile(path) {
150
+ return new Promise((resolve)=>{
151
+ const fd = createReadStream(path);
152
+ const hash = createHash('sha1');
153
+ hash.setEncoding('hex');
154
+ fd.on('end', function() {
155
+ hash.end();
156
+ resolve(hash.read());
157
+ });
158
+ fd.pipe(hash);
159
+ });
160
+ }
161
+ }
@@ -0,0 +1,20 @@
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import type { ContractStore } from '@aztec/pxe/server';
4
+ import { type ContractArtifact, FunctionSelector } from '@aztec/stdlib/abi';
5
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
6
+ import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
7
+ export declare class TXEPublicContractDataSource implements ContractDataSource {
8
+ private blockNumber;
9
+ private contractStore;
10
+ constructor(blockNumber: BlockNumber, contractStore: ContractStore);
11
+ getBlockNumber(): Promise<BlockNumber>;
12
+ getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
13
+ getBytecodeCommitment(id: Fr): Promise<Fr | undefined>;
14
+ getContract(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
15
+ getContractClassIds(): Promise<Fr[]>;
16
+ getContractArtifact(address: AztecAddress): Promise<ContractArtifact | undefined>;
17
+ getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
18
+ registerContractFunctionSignatures(_signatures: []): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX3B1YmxpY19jb250cmFjdF9kYXRhX3NvdXJjZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3R4ZV9wdWJsaWNfY29udHJhY3RfZGF0YV9zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkgscUJBQWEsMkJBQTRCLFlBQVcsa0JBQWtCO0lBRWxFLE9BQU8sQ0FBQyxXQUFXO0lBQ25CLE9BQU8sQ0FBQyxhQUFhO0lBRnZCLFlBQ1UsV0FBVyxFQUFFLFdBQVcsRUFDeEIsYUFBYSxFQUFFLGFBQWEsRUFDbEM7SUFFSixjQUFjLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUVyQztJQUVLLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxDQVl2RTtJQUVLLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FHM0Q7SUFFSyxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsMkJBQTJCLEdBQUcsU0FBUyxDQUFDLENBSXpGO0lBRUQsbUJBQW1CLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBRW5DO0lBRUssbUJBQW1CLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBR3RGO0lBRUssb0JBQW9CLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FHekc7SUFFRCxrQ0FBa0MsQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFakU7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txe_public_contract_data_source.d.ts","sourceRoot":"","sources":["../../src/utils/txe_public_contract_data_source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAEnH,qBAAa,2BAA4B,YAAW,kBAAkB;IAElE,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IAFvB,YACU,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAClC;IAEJ,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAErC;IAEK,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAYvE;IAEK,qBAAqB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAG3D;IAEK,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAIzF;IAED,mBAAmB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAEnC;IAEK,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAGtF;IAEK,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAGzG;IAED,kCAAkC,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;CACF"}
@@ -0,0 +1,51 @@
1
+ export class TXEPublicContractDataSource {
2
+ blockNumber;
3
+ contractStore;
4
+ constructor(blockNumber, contractStore){
5
+ this.blockNumber = blockNumber;
6
+ this.contractStore = contractStore;
7
+ }
8
+ getBlockNumber() {
9
+ return Promise.resolve(this.blockNumber);
10
+ }
11
+ async getContractClass(id) {
12
+ const contractClass = await this.contractStore.getContractClassWithPreimage(id);
13
+ if (!contractClass) {
14
+ return;
15
+ }
16
+ return {
17
+ id: contractClass.id,
18
+ artifactHash: contractClass.artifactHash,
19
+ packedBytecode: contractClass.packedBytecode,
20
+ privateFunctionsRoot: contractClass.privateFunctionsRoot,
21
+ version: contractClass.version
22
+ };
23
+ }
24
+ async getBytecodeCommitment(id) {
25
+ const contractClass = await this.contractStore.getContractClassWithPreimage(id);
26
+ return contractClass?.publicBytecodeCommitment;
27
+ }
28
+ async getContract(address) {
29
+ const instance = await this.contractStore.getContractInstance(address);
30
+ // TXE has no contract updates, so the current class always equals the original.
31
+ return instance && {
32
+ ...instance,
33
+ address,
34
+ currentContractClassId: instance.originalContractClassId
35
+ };
36
+ }
37
+ getContractClassIds() {
38
+ throw new Error('Method not implemented.');
39
+ }
40
+ async getContractArtifact(address) {
41
+ const instance = await this.getContract(address);
42
+ return instance && this.contractStore.getContractArtifact(instance.originalContractClassId);
43
+ }
44
+ async getDebugFunctionName(address, selector) {
45
+ const instance = await this.getContract(address);
46
+ return instance && this.contractStore.getDebugFunctionName(instance.originalContractClassId, selector);
47
+ }
48
+ registerContractFunctionSignatures(_signatures) {
49
+ return Promise.resolve();
50
+ }
51
+ }
@@ -0,0 +1,3 @@
1
+ import { createRequire as __txeCreateRequire } from 'node:module';
2
+ const require = __txeCreateRequire(import.meta.url);
3
+ import{TXEDispatcher,activeSessionCount,createLogger}from"./chunk-R3ZWQEFL.js";import{__name}from"./chunk-BJVAAXNA.js";import{BackendType,Barretenberg,BarretenbergSync}from"@aztec/bb.js";import{parentPort,workerData}from"node:worker_threads";Barretenberg.initSingleton({backend:BackendType.Wasm,skipSrsInit:!0,threads:1});BarretenbergSync.initSingleton({backend:BackendType.Wasm});if(!parentPort)throw new Error("worker.ts must be loaded as a worker_thread");var port=parentPort,logger=createLogger("txe:worker"),dispatcherOpts={contractStoreSourceDir:workerData.contractStoreSourceDir,schnorrClassId:workerData.schnorrClassId},dispatcher=new TXEDispatcher(logger,dispatcherOpts);function serializeError(err){return err instanceof Error?{message:err.message,name:err.name,stack:err.stack}:{message:String(err)}}__name(serializeError,"serializeError");process.env.TXE_WORKER_MEMSTAT==="1"&&setInterval(()=>{let m=process.memoryUsage();port.postMessage({type:"memstat",sessions:activeSessionCount(),rss:m.rss,heapTotal:m.heapTotal,heapUsed:m.heapUsed,external:m.external,arrayBuffers:m.arrayBuffers})},2e3).unref();port.on("message",msg=>{switch(msg.type){case"foreign-call":(async()=>{try{let value=await dispatcher.resolve_foreign_call(msg.callData);port.postMessage({type:"result",requestId:msg.requestId,ok:!0,value})}catch(err){port.postMessage({type:"result",requestId:msg.requestId,ok:!1,error:serializeError(err)})}})();return;case"dispose-session":dispatcher.disposeSession(msg.sessionId).catch(err=>logger.warn("disposeSession failed",err));return}});