@aztec/constants 0.0.0-test.1 → 0.0.1-commit.017a351
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/constants.d.ts +10 -2
- package/dest/constants.d.ts.map +1 -1
- package/dest/constants.gen.d.ts +484 -319
- package/dest/constants.gen.d.ts.map +1 -1
- package/dest/constants.gen.js +485 -320
- package/dest/constants.js +13 -1
- package/dest/scripts/constants.in.d.ts +1 -1
- package/dest/scripts/constants.in.js +328 -145
- package/package.json +24 -13
- package/src/constants.gen.ts +484 -325
- package/src/constants.ts +25 -1
package/dest/constants.js
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
// Re-export L2 block number constants with proper BlockNumber type
|
|
4
|
+
// Note: The generated constants are plain numbers, but we provide typed versions here
|
|
5
|
+
import { GENESIS_BLOCK_HEADER_HASH as GENESIS_BLOCK_HEADER_HASH_BIGINT, INITIAL_CHECKPOINT_NUMBER as INITIAL_CHECKPOINT_NUM_RAW, INITIAL_L2_BLOCK_NUM as INITIAL_L2_BLOCK_NUM_RAW } from './constants.gen.js';
|
|
1
6
|
// Typescript-land-only constants
|
|
2
|
-
export const
|
|
7
|
+
export const SPONSORED_FPC_SALT = BigInt(0);
|
|
3
8
|
// Autogenerated constants loaded from noir-land
|
|
9
|
+
// eslint-disable-next-line import-x/export
|
|
4
10
|
export * from './constants.gen.js';
|
|
11
|
+
/** The initial L2 block number (typed as BlockNumber). This is the first block number in the Aztec L2 chain. */ // eslint-disable-next-line import-x/export
|
|
12
|
+
export const INITIAL_L2_BLOCK_NUM = BlockNumber(INITIAL_L2_BLOCK_NUM_RAW);
|
|
13
|
+
/** The initial L2 checkpoint number (typed as CheckpointNumber). This is the first checkpoint number in the Aztec L2 chain. */ // eslint-disable-next-line import-x/export
|
|
14
|
+
export const INITIAL_CHECKPOINT_NUMBER = CheckpointNumber(INITIAL_CHECKPOINT_NUM_RAW);
|
|
15
|
+
/** The block header hash for the genesis block 0. */ // eslint-disable-next-line import-x/export
|
|
16
|
+
export const GENESIS_BLOCK_HEADER_HASH = new Fr(GENESIS_BLOCK_HEADER_HASH_BIGINT);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmluLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9jb25zdGFudHMuaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -3,78 +3,16 @@ import { dirname, join } from 'path';
|
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
const NOIR_CONSTANTS_FILE = '../../../../noir-projects/noir-protocol-circuits/crates/types/src/constants.nr';
|
|
5
5
|
const TS_CONSTANTS_FILE = '../constants.gen.ts';
|
|
6
|
-
const CPP_AZTEC_CONSTANTS_FILE = '../../../../barretenberg/cpp/src/barretenberg/
|
|
7
|
-
const PIL_AZTEC_CONSTANTS_FILE = '../../../../barretenberg/cpp/pil/
|
|
8
|
-
// Temp while vm2 is WIP
|
|
9
|
-
const PIL_VM2_AZTEC_CONSTANTS_FILE = '../../../../barretenberg/cpp/pil/vm2/constants_gen.pil';
|
|
6
|
+
const CPP_AZTEC_CONSTANTS_FILE = '../../../../barretenberg/cpp/src/barretenberg/aztec/aztec_constants.hpp';
|
|
7
|
+
const PIL_AZTEC_CONSTANTS_FILE = '../../../../barretenberg/cpp/pil/vm2/constants_gen.pil';
|
|
10
8
|
const SOLIDITY_CONSTANTS_FILE = '../../../../l1-contracts/src/core/libraries/ConstantsGen.sol';
|
|
11
9
|
// Whitelist of constants that will be copied to aztec_constants.hpp.
|
|
12
10
|
// We don't copy everything as just a handful are needed, and updating them breaks the cache and triggers expensive bb builds.
|
|
13
11
|
const CPP_CONSTANTS = [
|
|
14
|
-
'
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
'
|
|
18
|
-
'GLOBAL_VARIABLES_LENGTH',
|
|
19
|
-
'APPEND_ONLY_TREE_SNAPSHOT_LENGTH',
|
|
20
|
-
'PARTIAL_STATE_REFERENCE_LENGTH',
|
|
21
|
-
'STATE_REFERENCE_LENGTH',
|
|
22
|
-
'HEADER_LENGTH',
|
|
23
|
-
'CALL_CONTEXT_LENGTH',
|
|
24
|
-
'PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH',
|
|
25
|
-
'READ_REQUEST_LENGTH',
|
|
26
|
-
'MAX_ENQUEUED_CALLS_PER_TX',
|
|
27
|
-
'MAX_NOTE_HASHES_PER_TX',
|
|
28
|
-
'MAX_NULLIFIERS_PER_TX',
|
|
29
|
-
'MAX_L2_TO_L1_MSGS_PER_TX',
|
|
30
|
-
'MAX_PUBLIC_LOGS_PER_TX',
|
|
31
|
-
'PUBLIC_LOG_DATA_SIZE_IN_FIELDS',
|
|
32
|
-
'MAX_NOTE_HASH_READ_REQUESTS_PER_CALL',
|
|
33
|
-
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
34
|
-
'MAX_NULLIFIER_READ_REQUESTS_PER_CALL',
|
|
35
|
-
'MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL',
|
|
36
|
-
'MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL',
|
|
37
|
-
'CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH',
|
|
38
|
-
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL',
|
|
39
|
-
'CONTRACT_STORAGE_READ_LENGTH',
|
|
40
|
-
'PUBLIC_INNER_CALL_REQUEST_LENGTH',
|
|
41
|
-
'MAX_PUBLIC_DATA_READS_PER_CALL',
|
|
42
|
-
'MAX_ENQUEUED_CALLS_PER_CALL',
|
|
43
|
-
'NOTE_HASH_LENGTH',
|
|
44
|
-
'MAX_NOTE_HASHES_PER_CALL',
|
|
45
|
-
'NULLIFIER_LENGTH',
|
|
46
|
-
'MAX_NULLIFIERS_PER_CALL',
|
|
47
|
-
'L2_TO_L1_MESSAGE_LENGTH',
|
|
48
|
-
'MAX_L2_TO_L1_MSGS_PER_CALL',
|
|
49
|
-
'LOG_HASH_LENGTH',
|
|
50
|
-
'MAX_PUBLIC_LOGS_PER_CALL',
|
|
51
|
-
'HEADER_LENGTH',
|
|
52
|
-
'GLOBAL_VARIABLES_LENGTH',
|
|
53
|
-
'AZTEC_ADDRESS_LENGTH',
|
|
54
|
-
'START_NOTE_HASH_EXISTS_WRITE_OFFSET',
|
|
55
|
-
'START_NULLIFIER_EXISTS_OFFSET',
|
|
56
|
-
'START_NULLIFIER_NON_EXISTS_OFFSET',
|
|
57
|
-
'START_L1_TO_L2_MSG_EXISTS_WRITE_OFFSET',
|
|
58
|
-
'START_SSTORE_WRITE_OFFSET',
|
|
59
|
-
'START_SLOAD_WRITE_OFFSET',
|
|
60
|
-
'START_EMIT_NOTE_HASH_WRITE_OFFSET',
|
|
61
|
-
'START_EMIT_NULLIFIER_WRITE_OFFSET',
|
|
62
|
-
'START_EMIT_L2_TO_L1_MSG_WRITE_OFFSET',
|
|
63
|
-
'START_EMIT_UNENCRYPTED_LOG_WRITE_OFFSET',
|
|
64
|
-
'SENDER_KERNEL_INPUTS_COL_OFFSET',
|
|
65
|
-
'ADDRESS_KERNEL_INPUTS_COL_OFFSET',
|
|
66
|
-
'CHAIN_ID_KERNEL_INPUTS_COL_OFFSET',
|
|
67
|
-
'VERSION_KERNEL_INPUTS_COL_OFFSET',
|
|
68
|
-
'BLOCK_NUMBER_KERNEL_INPUTS_COL_OFFSET',
|
|
69
|
-
'TIMESTAMP_KERNEL_INPUTS_COL_OFFSET',
|
|
70
|
-
'FEE_PER_DA_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
71
|
-
'FEE_PER_L2_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
72
|
-
'IS_STATIC_CALL_KERNEL_INPUTS_COL_OFFSET',
|
|
73
|
-
'DA_START_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
74
|
-
'L2_START_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
75
|
-
'DA_END_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
76
|
-
'L2_END_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
77
|
-
'TRANSACTION_FEE_KERNEL_INPUTS_COL_OFFSET',
|
|
12
|
+
'MAX_ETH_ADDRESS_BIT_SIZE',
|
|
13
|
+
'MAX_ETH_ADDRESS_VALUE',
|
|
14
|
+
'GENESIS_BLOCK_HEADER_HASH',
|
|
15
|
+
'GENESIS_ARCHIVE_ROOT',
|
|
78
16
|
'MEM_TAG_U1',
|
|
79
17
|
'MEM_TAG_U8',
|
|
80
18
|
'MEM_TAG_U16',
|
|
@@ -82,66 +20,122 @@ const CPP_CONSTANTS = [
|
|
|
82
20
|
'MEM_TAG_U64',
|
|
83
21
|
'MEM_TAG_U128',
|
|
84
22
|
'MEM_TAG_FF',
|
|
85
|
-
'MAX_L2_GAS_PER_TX_PUBLIC_PORTION',
|
|
86
23
|
'MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS',
|
|
87
|
-
'
|
|
88
|
-
'
|
|
89
|
-
'REGISTERER_CONTRACT_ADDRESS',
|
|
90
|
-
'MULTI_CALL_ENTRYPOINT_ADDRESS',
|
|
24
|
+
'CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS',
|
|
25
|
+
'CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS',
|
|
91
26
|
'FEE_JUICE_ADDRESS',
|
|
92
|
-
'
|
|
27
|
+
'TX_DA_GAS_OVERHEAD',
|
|
93
28
|
'FEE_JUICE_BALANCES_SLOT',
|
|
94
|
-
'MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS',
|
|
95
29
|
'UPDATED_CLASS_IDS_SLOT',
|
|
96
|
-
'
|
|
30
|
+
'UPDATES_DELAYED_PUBLIC_MUTABLE_VALUES_LEN',
|
|
31
|
+
'PUBLIC_DATA_TREE_HEIGHT',
|
|
32
|
+
'NULLIFIER_TREE_HEIGHT',
|
|
33
|
+
'NULLIFIER_SUBTREE_HEIGHT',
|
|
34
|
+
'NOTE_HASH_TREE_HEIGHT',
|
|
35
|
+
'L1_TO_L2_MSG_TREE_HEIGHT',
|
|
36
|
+
'ARCHIVE_HEIGHT',
|
|
37
|
+
'TIMESTAMP_OF_CHANGE_BIT_SIZE',
|
|
38
|
+
'UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE',
|
|
39
|
+
'MAX_ENQUEUED_CALLS_PER_TX',
|
|
40
|
+
'MAX_NOTE_HASHES_PER_TX',
|
|
41
|
+
'MAX_NULLIFIERS_PER_TX',
|
|
42
|
+
'MAX_L2_TO_L1_MSGS_PER_TX',
|
|
43
|
+
'MAX_PROCESSABLE_L2_GAS',
|
|
44
|
+
'MAX_PUBLIC_LOGS_PER_TX',
|
|
45
|
+
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
46
|
+
'MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS',
|
|
47
|
+
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
48
|
+
'MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
49
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_ROW_IDX',
|
|
50
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_CHAIN_ID_ROW_IDX',
|
|
51
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_VERSION_ROW_IDX',
|
|
52
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_BLOCK_NUMBER_ROW_IDX',
|
|
53
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_SLOT_NUMBER_ROW_IDX',
|
|
54
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_TIMESTAMP_ROW_IDX',
|
|
55
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_COINBASE_ROW_IDX',
|
|
56
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_FEE_RECIPIENT_ROW_IDX',
|
|
57
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX',
|
|
58
|
+
'AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACTS_ROW_IDX',
|
|
59
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_ROW_IDX',
|
|
60
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX',
|
|
61
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX',
|
|
62
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX',
|
|
63
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX',
|
|
64
|
+
'AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX',
|
|
65
|
+
'AVM_PUBLIC_INPUTS_GAS_SETTINGS_ROW_IDX',
|
|
66
|
+
'AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX',
|
|
67
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX',
|
|
68
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX',
|
|
69
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX',
|
|
70
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX',
|
|
71
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX',
|
|
72
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX',
|
|
73
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
74
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
75
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
76
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX',
|
|
77
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
78
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
79
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
80
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_ROW_IDX',
|
|
81
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX',
|
|
82
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX',
|
|
83
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX',
|
|
84
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX',
|
|
85
|
+
'AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX',
|
|
86
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX',
|
|
87
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX',
|
|
88
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX',
|
|
89
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_LOGS_ROW_IDX',
|
|
90
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX',
|
|
91
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ROW_IDX',
|
|
92
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
93
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
94
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
95
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX',
|
|
96
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX',
|
|
97
|
+
'AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX',
|
|
98
|
+
'AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX',
|
|
99
|
+
'AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH',
|
|
100
|
+
'AVM_NUM_PUBLIC_INPUT_COLUMNS',
|
|
101
|
+
'AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH',
|
|
102
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_HEIGHT',
|
|
103
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT',
|
|
104
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_SIZE',
|
|
105
|
+
'NOTE_HASH_TREE_LEAF_COUNT',
|
|
106
|
+
'L1_TO_L2_MSG_TREE_LEAF_COUNT',
|
|
107
|
+
'FLAT_PUBLIC_LOGS_HEADER_LENGTH',
|
|
108
|
+
'FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH',
|
|
109
|
+
'PUBLIC_LOGS_LENGTH',
|
|
110
|
+
'PUBLIC_LOG_HEADER_LENGTH',
|
|
111
|
+
'PUBLIC_TX_L2_GAS_OVERHEAD',
|
|
112
|
+
'MAX_PROTOCOL_CONTRACTS',
|
|
113
|
+
'DEFAULT_MAX_DEBUG_LOG_MEMORY_READS'
|
|
97
114
|
];
|
|
98
115
|
const CPP_GENERATORS = [
|
|
116
|
+
'BLOCK_HEADER_HASH',
|
|
117
|
+
'SALTED_INITIALIZATION_HASH',
|
|
99
118
|
'PARTIAL_ADDRESS',
|
|
100
|
-
'
|
|
101
|
-
'
|
|
119
|
+
'CONTRACT_ADDRESS_V2',
|
|
120
|
+
'CONTRACT_CLASS_ID',
|
|
102
121
|
'PUBLIC_KEYS_HASH',
|
|
122
|
+
'SINGLE_PUBLIC_KEY_HASH',
|
|
103
123
|
'NOTE_HASH_NONCE',
|
|
104
124
|
'UNIQUE_NOTE_HASH',
|
|
105
125
|
'SILOED_NOTE_HASH',
|
|
106
|
-
'
|
|
107
|
-
'
|
|
126
|
+
'SILOED_NULLIFIER',
|
|
127
|
+
'PUBLIC_LEAF_SLOT',
|
|
128
|
+
'PUBLIC_STORAGE_MAP_SLOT',
|
|
129
|
+
'PUBLIC_CALLDATA',
|
|
130
|
+
'PUBLIC_BYTECODE',
|
|
131
|
+
'MERKLE_HASH',
|
|
132
|
+
'NULLIFIER_MERKLE',
|
|
133
|
+
'PUBLIC_DATA_MERKLE',
|
|
134
|
+
'WRITTEN_SLOTS_MERKLE',
|
|
135
|
+
'RETRIEVED_BYTECODES_MERKLE'
|
|
108
136
|
];
|
|
109
137
|
const PIL_CONSTANTS = [
|
|
110
|
-
'
|
|
111
|
-
'MAX_NULLIFIER_READ_REQUESTS_PER_CALL',
|
|
112
|
-
'MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL',
|
|
113
|
-
'MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL',
|
|
114
|
-
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL',
|
|
115
|
-
'MAX_PUBLIC_DATA_READS_PER_CALL',
|
|
116
|
-
'MAX_ENQUEUED_CALLS_PER_CALL',
|
|
117
|
-
'MAX_NOTE_HASHES_PER_CALL',
|
|
118
|
-
'MAX_NULLIFIERS_PER_CALL',
|
|
119
|
-
'MAX_L2_TO_L1_MSGS_PER_CALL',
|
|
120
|
-
'MAX_PUBLIC_LOGS_PER_CALL',
|
|
121
|
-
'START_NOTE_HASH_EXISTS_WRITE_OFFSET',
|
|
122
|
-
'START_NULLIFIER_EXISTS_OFFSET',
|
|
123
|
-
'START_NULLIFIER_NON_EXISTS_OFFSET',
|
|
124
|
-
'START_L1_TO_L2_MSG_EXISTS_WRITE_OFFSET',
|
|
125
|
-
'START_SSTORE_WRITE_OFFSET',
|
|
126
|
-
'START_SLOAD_WRITE_OFFSET',
|
|
127
|
-
'START_EMIT_NOTE_HASH_WRITE_OFFSET',
|
|
128
|
-
'START_EMIT_NULLIFIER_WRITE_OFFSET',
|
|
129
|
-
'START_EMIT_L2_TO_L1_MSG_WRITE_OFFSET',
|
|
130
|
-
'START_EMIT_UNENCRYPTED_LOG_WRITE_OFFSET',
|
|
131
|
-
'SENDER_KERNEL_INPUTS_COL_OFFSET',
|
|
132
|
-
'ADDRESS_KERNEL_INPUTS_COL_OFFSET',
|
|
133
|
-
'CHAIN_ID_KERNEL_INPUTS_COL_OFFSET',
|
|
134
|
-
'VERSION_KERNEL_INPUTS_COL_OFFSET',
|
|
135
|
-
'BLOCK_NUMBER_KERNEL_INPUTS_COL_OFFSET',
|
|
136
|
-
'TIMESTAMP_KERNEL_INPUTS_COL_OFFSET',
|
|
137
|
-
'FEE_PER_DA_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
138
|
-
'FEE_PER_L2_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
139
|
-
'IS_STATIC_CALL_KERNEL_INPUTS_COL_OFFSET',
|
|
140
|
-
'DA_START_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
141
|
-
'L2_START_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
142
|
-
'DA_END_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
143
|
-
'L2_END_GAS_KERNEL_INPUTS_COL_OFFSET',
|
|
144
|
-
'TRANSACTION_FEE_KERNEL_INPUTS_COL_OFFSET',
|
|
138
|
+
'MAX_ETH_ADDRESS_VALUE',
|
|
145
139
|
'MEM_TAG_U1',
|
|
146
140
|
'MEM_TAG_U8',
|
|
147
141
|
'MEM_TAG_U16',
|
|
@@ -149,18 +143,200 @@ const PIL_CONSTANTS = [
|
|
|
149
143
|
'MEM_TAG_U64',
|
|
150
144
|
'MEM_TAG_U128',
|
|
151
145
|
'MEM_TAG_FF',
|
|
152
|
-
'
|
|
146
|
+
'AVM_BITWISE_AND_OP_ID',
|
|
147
|
+
'AVM_BITWISE_OR_OP_ID',
|
|
148
|
+
'AVM_BITWISE_XOR_OP_ID',
|
|
149
|
+
'AVM_KECCAKF1600_NUM_ROUNDS',
|
|
150
|
+
'AVM_KECCAKF1600_STATE_SIZE',
|
|
151
|
+
'AVM_TX_PHASE_VALUE_START',
|
|
152
|
+
'AVM_TX_PHASE_VALUE_SETUP',
|
|
153
|
+
'AVM_TX_PHASE_VALUE_LAST',
|
|
154
|
+
'AVM_HIGHEST_MEM_ADDRESS',
|
|
155
|
+
'AVM_MEMORY_NUM_BITS',
|
|
156
|
+
'AVM_MEMORY_SIZE',
|
|
157
|
+
'MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS',
|
|
158
|
+
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
159
|
+
'MAX_NOTE_HASHES_PER_TX',
|
|
160
|
+
'GRUMPKIN_ONE_X',
|
|
161
|
+
'GRUMPKIN_ONE_Y',
|
|
162
|
+
'AVM_PC_SIZE_IN_BITS',
|
|
163
|
+
'PUBLIC_DATA_TREE_HEIGHT',
|
|
164
|
+
'NULLIFIER_TREE_HEIGHT',
|
|
165
|
+
'NOTE_HASH_TREE_HEIGHT',
|
|
166
|
+
'L1_TO_L2_MSG_TREE_HEIGHT',
|
|
167
|
+
'UPDATED_CLASS_IDS_SLOT',
|
|
168
|
+
'UPDATES_DELAYED_PUBLIC_MUTABLE_VALUES_LEN',
|
|
169
|
+
'CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS',
|
|
170
|
+
'CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS',
|
|
171
|
+
'FEE_JUICE_ADDRESS',
|
|
172
|
+
'FEE_JUICE_BALANCES_SLOT',
|
|
173
|
+
'TIMESTAMP_OF_CHANGE_BIT_SIZE',
|
|
174
|
+
'UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE',
|
|
175
|
+
'UPDATES_SHARED_MUTABLE_METADATA_BIT_SIZE',
|
|
176
|
+
'MAX_ENQUEUED_CALLS_PER_TX',
|
|
177
|
+
'MAX_NOTE_HASHES_PER_TX',
|
|
178
|
+
'MAX_NULLIFIERS_PER_TX',
|
|
179
|
+
'MAX_L2_TO_L1_MSGS_PER_TX',
|
|
180
|
+
'MAX_PUBLIC_LOGS_PER_TX',
|
|
181
|
+
'MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS',
|
|
182
|
+
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
183
|
+
'MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
184
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_ROW_IDX',
|
|
185
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_CHAIN_ID_ROW_IDX',
|
|
186
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_VERSION_ROW_IDX',
|
|
187
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_BLOCK_NUMBER_ROW_IDX',
|
|
188
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_SLOT_NUMBER_ROW_IDX',
|
|
189
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_TIMESTAMP_ROW_IDX',
|
|
190
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_COINBASE_ROW_IDX',
|
|
191
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_FEE_RECIPIENT_ROW_IDX',
|
|
192
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX',
|
|
193
|
+
'AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACTS_ROW_IDX',
|
|
194
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_ROW_IDX',
|
|
195
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX',
|
|
196
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX',
|
|
197
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX',
|
|
198
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX',
|
|
199
|
+
'AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX',
|
|
200
|
+
'AVM_PUBLIC_INPUTS_GAS_SETTINGS_ROW_IDX',
|
|
201
|
+
'AVM_PUBLIC_INPUTS_GAS_SETTINGS_GAS_LIMITS_ROW_IDX',
|
|
202
|
+
'AVM_PUBLIC_INPUTS_GAS_SETTINGS_TEARDOWN_GAS_LIMITS_ROW_IDX',
|
|
203
|
+
'AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX',
|
|
204
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX',
|
|
205
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX',
|
|
206
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX',
|
|
207
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX',
|
|
208
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX',
|
|
209
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX',
|
|
210
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
211
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
212
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
213
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX',
|
|
214
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
215
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
216
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
217
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_ROW_IDX',
|
|
218
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX',
|
|
219
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX',
|
|
220
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX',
|
|
221
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX',
|
|
222
|
+
'AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX',
|
|
223
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX',
|
|
224
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX',
|
|
225
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX',
|
|
226
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_LOGS_ROW_IDX',
|
|
227
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX',
|
|
228
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ROW_IDX',
|
|
229
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
230
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
231
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
232
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX',
|
|
233
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX',
|
|
234
|
+
'AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX',
|
|
235
|
+
'AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX',
|
|
236
|
+
'AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH',
|
|
237
|
+
'AVM_NUM_PUBLIC_INPUT_COLUMNS',
|
|
238
|
+
'AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH',
|
|
239
|
+
'AVM_SUBTRACE_ID_EXECUTION',
|
|
240
|
+
'AVM_SUBTRACE_ID_ALU',
|
|
241
|
+
'AVM_SUBTRACE_ID_CAST',
|
|
242
|
+
'AVM_SUBTRACE_ID_SET',
|
|
243
|
+
'AVM_SUBTRACE_ID_BITWISE',
|
|
244
|
+
'AVM_SUBTRACE_ID_POSEIDON2_PERM',
|
|
245
|
+
'AVM_SUBTRACE_ID_TO_RADIX',
|
|
246
|
+
'AVM_SUBTRACE_ID_ECC',
|
|
247
|
+
'AVM_SUBTRACE_ID_KECCAKF1600',
|
|
248
|
+
'AVM_SUBTRACE_ID_CALLDATA_COPY',
|
|
249
|
+
'AVM_SUBTRACE_ID_SHA256_COMPRESSION',
|
|
250
|
+
'AVM_SUBTRACE_ID_RETURNDATA_COPY',
|
|
251
|
+
'AVM_DYN_GAS_ID_CALLDATACOPY',
|
|
252
|
+
'AVM_DYN_GAS_ID_RETURNDATACOPY',
|
|
253
|
+
'AVM_DYN_GAS_ID_TORADIX',
|
|
254
|
+
'AVM_DYN_GAS_ID_BITWISE',
|
|
255
|
+
'AVM_DYN_GAS_ID_EMITPUBLICLOG',
|
|
256
|
+
'AVM_DYN_GAS_ID_SSTORE',
|
|
257
|
+
'AVM_SUBTRACE_ID_GETCONTRACTINSTANCE',
|
|
258
|
+
'AVM_SUBTRACE_ID_EMITPUBLICLOG',
|
|
259
|
+
'AVM_EXEC_OP_ID_GETENVVAR',
|
|
260
|
+
'AVM_EXEC_OP_ID_MOV',
|
|
261
|
+
'AVM_EXEC_OP_ID_JUMP',
|
|
262
|
+
'AVM_EXEC_OP_ID_JUMPI',
|
|
263
|
+
'AVM_EXEC_OP_ID_CALL',
|
|
264
|
+
'AVM_EXEC_OP_ID_STATICCALL',
|
|
265
|
+
'AVM_EXEC_OP_ID_INTERNALCALL',
|
|
266
|
+
'AVM_EXEC_OP_ID_INTERNALRETURN',
|
|
267
|
+
'AVM_EXEC_OP_ID_RETURN',
|
|
268
|
+
'AVM_EXEC_OP_ID_REVERT',
|
|
269
|
+
'AVM_EXEC_OP_ID_SUCCESSCOPY',
|
|
270
|
+
'AVM_EXEC_OP_ID_ALU_ADD',
|
|
271
|
+
'AVM_EXEC_OP_ID_ALU_SUB',
|
|
272
|
+
'AVM_EXEC_OP_ID_ALU_MUL',
|
|
273
|
+
'AVM_EXEC_OP_ID_ALU_DIV',
|
|
274
|
+
'AVM_EXEC_OP_ID_ALU_FDIV',
|
|
275
|
+
'AVM_EXEC_OP_ID_ALU_EQ',
|
|
276
|
+
'AVM_EXEC_OP_ID_ALU_LT',
|
|
277
|
+
'AVM_EXEC_OP_ID_ALU_LTE',
|
|
278
|
+
'AVM_EXEC_OP_ID_ALU_NOT',
|
|
279
|
+
'AVM_EXEC_OP_ID_ALU_SHL',
|
|
280
|
+
'AVM_EXEC_OP_ID_ALU_SHR',
|
|
281
|
+
'AVM_EXEC_OP_ID_ALU_TRUNCATE',
|
|
282
|
+
'AVM_EXEC_OP_ID_RETURNDATASIZE',
|
|
283
|
+
'AVM_EXEC_OP_ID_DEBUGLOG',
|
|
284
|
+
'AVM_EXEC_OP_ID_SLOAD',
|
|
285
|
+
'AVM_EXEC_OP_ID_SSTORE',
|
|
286
|
+
'AVM_EXEC_OP_ID_NOTEHASH_EXISTS',
|
|
287
|
+
'AVM_EXEC_OP_ID_EMIT_NOTEHASH',
|
|
288
|
+
'AVM_EXEC_OP_ID_L1_TO_L2_MESSAGE_EXISTS',
|
|
289
|
+
'AVM_EXEC_OP_ID_NULLIFIER_EXISTS',
|
|
290
|
+
'AVM_EXEC_OP_ID_EMIT_NULLIFIER',
|
|
291
|
+
'AVM_EXEC_OP_ID_SENDL2TOL1MSG',
|
|
292
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_HEIGHT',
|
|
293
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT',
|
|
294
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_SIZE',
|
|
295
|
+
'AVM_RETRIEVED_BYTECODES_TREE_HEIGHT',
|
|
296
|
+
'AVM_RETRIEVED_BYTECODES_TREE_INITIAL_ROOT',
|
|
297
|
+
'AVM_RETRIEVED_BYTECODES_TREE_INITIAL_SIZE',
|
|
298
|
+
'NOTE_HASH_TREE_LEAF_COUNT',
|
|
299
|
+
'L1_TO_L2_MSG_TREE_LEAF_COUNT',
|
|
300
|
+
'FLAT_PUBLIC_LOGS_HEADER_LENGTH',
|
|
301
|
+
'FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH',
|
|
302
|
+
'PUBLIC_LOGS_LENGTH',
|
|
303
|
+
'PUBLIC_LOG_HEADER_LENGTH',
|
|
304
|
+
'MAX_PROTOCOL_CONTRACTS'
|
|
153
305
|
];
|
|
154
306
|
const PIL_GENERATORS = [
|
|
307
|
+
'SALTED_INITIALIZATION_HASH',
|
|
155
308
|
'PARTIAL_ADDRESS',
|
|
156
|
-
'
|
|
157
|
-
'
|
|
309
|
+
'CONTRACT_ADDRESS_V2',
|
|
310
|
+
'CONTRACT_CLASS_ID',
|
|
158
311
|
'PUBLIC_KEYS_HASH',
|
|
312
|
+
'SINGLE_PUBLIC_KEY_HASH',
|
|
159
313
|
'NOTE_HASH_NONCE',
|
|
160
314
|
'UNIQUE_NOTE_HASH',
|
|
161
315
|
'SILOED_NOTE_HASH',
|
|
162
|
-
'
|
|
163
|
-
'
|
|
316
|
+
'SILOED_NULLIFIER',
|
|
317
|
+
'PUBLIC_LEAF_SLOT',
|
|
318
|
+
'PUBLIC_STORAGE_MAP_SLOT',
|
|
319
|
+
'PUBLIC_CALLDATA',
|
|
320
|
+
'PUBLIC_BYTECODE',
|
|
321
|
+
'MERKLE_HASH',
|
|
322
|
+
'NULLIFIER_MERKLE',
|
|
323
|
+
'PUBLIC_DATA_MERKLE',
|
|
324
|
+
'WRITTEN_SLOTS_MERKLE',
|
|
325
|
+
'RETRIEVED_BYTECODES_MERKLE'
|
|
326
|
+
];
|
|
327
|
+
const SOLIDITY_CONSTANTS = [
|
|
328
|
+
'MAX_FIELD_VALUE',
|
|
329
|
+
'MAX_L2_TO_L1_MSGS_PER_TX',
|
|
330
|
+
'EMPTY_EPOCH_OUT_HASH',
|
|
331
|
+
'L1_TO_L2_MSG_SUBTREE_HEIGHT',
|
|
332
|
+
'NUM_MSGS_PER_BASE_PARITY',
|
|
333
|
+
'NUM_BASE_PARITY_PER_ROOT_PARITY',
|
|
334
|
+
'BLS12_POINT_COMPRESSED_BYTES',
|
|
335
|
+
'ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH',
|
|
336
|
+
'INITIAL_CHECKPOINT_NUMBER',
|
|
337
|
+
'GENESIS_ARCHIVE_ROOT',
|
|
338
|
+
'FEE_JUICE_ADDRESS',
|
|
339
|
+
'MAX_CHECKPOINTS_PER_EPOCH'
|
|
164
340
|
];
|
|
165
341
|
/**
|
|
166
342
|
* Processes a collection of constants and generates code to export them as TypeScript constants.
|
|
@@ -183,14 +359,19 @@ const PIL_GENERATORS = [
|
|
|
183
359
|
*/ function processConstantsCpp(constants, generatorIndices) {
|
|
184
360
|
const code = [];
|
|
185
361
|
Object.entries(constants).forEach(([key, value])=>{
|
|
186
|
-
if (CPP_CONSTANTS.includes(key) || key.startsWith('AVM_')
|
|
187
|
-
|
|
188
|
-
|
|
362
|
+
if (CPP_CONSTANTS.includes(key) || key.startsWith('AVM_')) {
|
|
363
|
+
if (BigInt(value) <= 2n ** 31n - 1n) {
|
|
364
|
+
code.push(`#define ${key} ${value}`);
|
|
365
|
+
} else if (BigInt(value) <= 2n ** 64n - 1n) {
|
|
366
|
+
code.push(`#define ${key} 0x${BigInt(value).toString(16)}`); // hex literals
|
|
367
|
+
} else {
|
|
368
|
+
code.push(`#define ${key} "0x${BigInt(value).toString(16).padStart(64, '0')}"`); // stringify large numbers
|
|
369
|
+
}
|
|
189
370
|
}
|
|
190
371
|
});
|
|
191
372
|
Object.entries(generatorIndices).forEach(([key, value])=>{
|
|
192
373
|
if (CPP_GENERATORS.includes(key)) {
|
|
193
|
-
code.push(`#define
|
|
374
|
+
code.push(`#define DOM_SEP__${key} ${value}UL`);
|
|
194
375
|
}
|
|
195
376
|
});
|
|
196
377
|
return code.join('\n');
|
|
@@ -210,7 +391,7 @@ const PIL_GENERATORS = [
|
|
|
210
391
|
});
|
|
211
392
|
Object.entries(generatorIndices).forEach(([key, value])=>{
|
|
212
393
|
if (PIL_GENERATORS.includes(key)) {
|
|
213
|
-
code.push(` pol
|
|
394
|
+
code.push(` pol DOM_SEP__${key} = ${value};`);
|
|
214
395
|
}
|
|
215
396
|
});
|
|
216
397
|
return code.join('\n');
|
|
@@ -239,7 +420,7 @@ const PIL_GENERATORS = [
|
|
|
239
420
|
*/ function processConstantsSolidity(constants, prefix = '') {
|
|
240
421
|
const code = [];
|
|
241
422
|
Object.entries(constants).forEach(([key, value])=>{
|
|
242
|
-
if (
|
|
423
|
+
if (SOLIDITY_CONSTANTS.includes(key)) {
|
|
243
424
|
code.push(` uint256 internal constant ${prefix}${key} = ${value};`);
|
|
244
425
|
}
|
|
245
426
|
});
|
|
@@ -247,30 +428,30 @@ const PIL_GENERATORS = [
|
|
|
247
428
|
}
|
|
248
429
|
/**
|
|
249
430
|
* Generate the constants file in Typescript.
|
|
250
|
-
*/ function generateTypescriptConstants({ constants,
|
|
431
|
+
*/ function generateTypescriptConstants({ constants, domainSeparatorEnum }, targetPath) {
|
|
251
432
|
const result = [
|
|
252
|
-
'
|
|
433
|
+
'// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants',
|
|
253
434
|
processConstantsTS(constants),
|
|
254
|
-
processEnumTS('
|
|
435
|
+
processEnumTS('DomainSeparator', domainSeparatorEnum)
|
|
255
436
|
].join('\n');
|
|
256
437
|
fs.writeFileSync(targetPath, result);
|
|
257
438
|
}
|
|
258
439
|
/**
|
|
259
440
|
* Generate the constants file in C++.
|
|
260
|
-
*/ function generateCppConstants({ constants,
|
|
441
|
+
*/ function generateCppConstants({ constants, domainSeparatorEnum }, targetPath) {
|
|
261
442
|
const resultCpp = `// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants in yarn-project/constants
|
|
262
443
|
#pragma once
|
|
263
444
|
|
|
264
|
-
${processConstantsCpp(constants,
|
|
445
|
+
${processConstantsCpp(constants, domainSeparatorEnum)}
|
|
265
446
|
`;
|
|
266
447
|
fs.writeFileSync(targetPath, resultCpp);
|
|
267
448
|
}
|
|
268
449
|
/**
|
|
269
450
|
* Generate the constants file in PIL.
|
|
270
|
-
*/ function generatePilConstants({ constants,
|
|
451
|
+
*/ function generatePilConstants({ constants, domainSeparatorEnum }, targetPath) {
|
|
271
452
|
const resultPil = `// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants in yarn-project/constants
|
|
272
453
|
namespace constants;
|
|
273
|
-
${processConstantsPil(constants,
|
|
454
|
+
${processConstantsPil(constants, domainSeparatorEnum)}
|
|
274
455
|
\n`;
|
|
275
456
|
fs.writeFileSync(targetPath, resultPil);
|
|
276
457
|
}
|
|
@@ -300,7 +481,7 @@ ${processConstantsSolidity(constants)}
|
|
|
300
481
|
* Parse the content of the constants file in Noir.
|
|
301
482
|
*/ function parseNoirFile(fileContent) {
|
|
302
483
|
const constantsExpressions = [];
|
|
303
|
-
const
|
|
484
|
+
const domainSeparatorEnum = {};
|
|
304
485
|
const emptyExpression = ()=>({
|
|
305
486
|
name: '',
|
|
306
487
|
content: []
|
|
@@ -319,10 +500,10 @@ ${processConstantsSolidity(constants)}
|
|
|
319
500
|
{
|
|
320
501
|
const [, name, _type, value, end] = line.match(/global\s+(\w+)(\s*:\s*\w+)?\s*=\s*([^;]*)(;)?/) || [];
|
|
321
502
|
if (name && value) {
|
|
322
|
-
const [, indexName] = name.match(/
|
|
503
|
+
const [, indexName] = name.match(/DOM_SEP__(\w+)/) || [];
|
|
323
504
|
if (indexName) {
|
|
324
505
|
// Generator index.
|
|
325
|
-
|
|
506
|
+
domainSeparatorEnum[indexName] = +value;
|
|
326
507
|
} else if (end) {
|
|
327
508
|
// A single line of expression.
|
|
328
509
|
constantsExpressions.push([
|
|
@@ -370,7 +551,7 @@ ${processConstantsSolidity(constants)}
|
|
|
370
551
|
const constants = evaluateExpressions(constantsExpressions);
|
|
371
552
|
return {
|
|
372
553
|
constants,
|
|
373
|
-
|
|
554
|
+
domainSeparatorEnum
|
|
374
555
|
};
|
|
375
556
|
}
|
|
376
557
|
/**
|
|
@@ -390,13 +571,18 @@ ${processConstantsSolidity(constants)}
|
|
|
390
571
|
// However, (1) the bigints need to be initialized from strings; (2) everything needs to
|
|
391
572
|
// be a bigint, even the actual constant values!
|
|
392
573
|
const prelude = expressions.map(([name, rhs])=>{
|
|
393
|
-
const guardedRhs = rhs// Remove 'as u8' and 'as
|
|
394
|
-
.replaceAll(' as u8', '').replaceAll(' as u32', '')// Remove the 'AztecAddress::from_field(...)' pattern
|
|
395
|
-
|
|
574
|
+
const guardedRhs = rhs// Remove 'as u8', 'as u32' and 'as u64' castings
|
|
575
|
+
.replaceAll(' as u8', '').replaceAll(' as u32', '').replaceAll(' as u64', '')// Remove the 'AztecAddress::from_field(...)' pattern.
|
|
576
|
+
// Also copes with the noir formatter re-formatting over multiple lines.
|
|
577
|
+
.replace(/AztecAddress::from_field\(\s*(0x[a-fA-F0-9]+|\d+)\s*,?\s*\)/gs, '$1')// We make some space around the parentheses, so that constant numbers are still split.
|
|
396
578
|
.replace(/\(/g, '( ').replace(/\)/g, ' )')// We also make some space around common operators
|
|
397
579
|
.replace(/\+/g, ' + ').replace(/(?<!\/)\*(?!\/)/, ' * ')// We split the expression into terms...
|
|
398
580
|
.split(/\s+/)// ...and then we convert each term to a BigInt if it is a number.
|
|
399
|
-
.map((term)=>
|
|
581
|
+
.map((term)=>{
|
|
582
|
+
// Remove underscores from numeric literals (e.g., 6_000_000 -> 6000000)
|
|
583
|
+
const termWithoutUnderscores = term.replace(/_/g, '');
|
|
584
|
+
return isNaN(+termWithoutUnderscores) ? term : `BigInt('${termWithoutUnderscores}')`;
|
|
585
|
+
})// .. also, we convert the known bigints to BigInts.
|
|
400
586
|
.map((term)=>knownBigInts.includes(term) ? `BigInt(${term})` : term)// We join the terms back together.
|
|
401
587
|
.join(' ');
|
|
402
588
|
return `var ${name} = ${guardedRhs};`;
|
|
@@ -421,12 +607,9 @@ ${processConstantsSolidity(constants)}
|
|
|
421
607
|
// Cpp
|
|
422
608
|
const cppTargetPath = join(__dirname, CPP_AZTEC_CONSTANTS_FILE);
|
|
423
609
|
generateCppConstants(parsedContent, cppTargetPath);
|
|
424
|
-
// PIL
|
|
610
|
+
// PIL
|
|
425
611
|
const pilTargetPath = join(__dirname, PIL_AZTEC_CONSTANTS_FILE);
|
|
426
612
|
generatePilConstants(parsedContent, pilTargetPath);
|
|
427
|
-
// PIL - VM2
|
|
428
|
-
const pilVm2TargetPath = join(__dirname, PIL_VM2_AZTEC_CONSTANTS_FILE);
|
|
429
|
-
generatePilConstants(parsedContent, pilVm2TargetPath);
|
|
430
613
|
// Solidity
|
|
431
614
|
const solidityTargetPath = join(__dirname, SOLIDITY_CONSTANTS_FILE);
|
|
432
615
|
fs.mkdirSync(dirname(solidityTargetPath), {
|