@aztec/constants 0.0.0-test.0 → 0.0.1-commit.001888fc
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 +14 -2
- package/dest/constants.d.ts.map +1 -1
- package/dest/constants.gen.d.ts +450 -312
- package/dest/constants.gen.d.ts.map +1 -1
- package/dest/constants.gen.js +451 -313
- package/dest/constants.js +23 -1
- package/dest/scripts/constants.in.d.ts +1 -1
- package/dest/scripts/constants.in.js +316 -141
- package/package.json +24 -13
- package/src/constants.gen.ts +450 -318
- package/src/constants.ts +38 -1
package/dest/constants.js
CHANGED
|
@@ -1,4 +1,26 @@
|
|
|
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, MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS } 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);
|
|
17
|
+
// Override the default gas limits set in noir-protocol-circuit constants with saner ones
|
|
18
|
+
// Note that these values are not used in noir-land and are only for use in TypeScript code, so we can set them to whatever we want.
|
|
19
|
+
// eslint-disable-next-line import-x/export
|
|
20
|
+
export const DEFAULT_L2_GAS_LIMIT = MAX_PROCESSABLE_L2_GAS;
|
|
21
|
+
// eslint-disable-next-line import-x/export
|
|
22
|
+
export const DEFAULT_TEARDOWN_L2_GAS_LIMIT = DEFAULT_L2_GAS_LIMIT / 8;
|
|
23
|
+
// eslint-disable-next-line import-x/export
|
|
24
|
+
export const DEFAULT_DA_GAS_LIMIT = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT / 4;
|
|
25
|
+
// eslint-disable-next-line import-x/export
|
|
26
|
+
export const DEFAULT_TEARDOWN_DA_GAS_LIMIT = DEFAULT_DA_GAS_LIMIT / 2;
|
|
@@ -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/vm2/common/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,118 @@ 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
24
|
'CANONICAL_AUTH_REGISTRY_ADDRESS',
|
|
88
|
-
'
|
|
89
|
-
'
|
|
25
|
+
'CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS',
|
|
26
|
+
'CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS',
|
|
90
27
|
'MULTI_CALL_ENTRYPOINT_ADDRESS',
|
|
91
28
|
'FEE_JUICE_ADDRESS',
|
|
92
|
-
'
|
|
29
|
+
'TX_DA_GAS_OVERHEAD',
|
|
30
|
+
'PUBLIC_CHECKS_ADDRESS',
|
|
93
31
|
'FEE_JUICE_BALANCES_SLOT',
|
|
94
|
-
'MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS',
|
|
95
32
|
'UPDATED_CLASS_IDS_SLOT',
|
|
96
|
-
'
|
|
33
|
+
'UPDATES_DELAYED_PUBLIC_MUTABLE_VALUES_LEN',
|
|
34
|
+
'PUBLIC_DATA_TREE_HEIGHT',
|
|
35
|
+
'NULLIFIER_TREE_HEIGHT',
|
|
36
|
+
'NULLIFIER_SUBTREE_HEIGHT',
|
|
37
|
+
'NOTE_HASH_TREE_HEIGHT',
|
|
38
|
+
'L1_TO_L2_MSG_TREE_HEIGHT',
|
|
39
|
+
'ARCHIVE_HEIGHT',
|
|
40
|
+
'TIMESTAMP_OF_CHANGE_BIT_SIZE',
|
|
41
|
+
'UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE',
|
|
42
|
+
'MAX_ENQUEUED_CALLS_PER_TX',
|
|
43
|
+
'MAX_NOTE_HASHES_PER_TX',
|
|
44
|
+
'MAX_NULLIFIERS_PER_TX',
|
|
45
|
+
'MAX_L2_TO_L1_MSGS_PER_TX',
|
|
46
|
+
'MAX_PROCESSABLE_L2_GAS',
|
|
47
|
+
'MAX_PUBLIC_LOGS_PER_TX',
|
|
48
|
+
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
49
|
+
'MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS',
|
|
50
|
+
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
51
|
+
'MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
52
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_ROW_IDX',
|
|
53
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_CHAIN_ID_ROW_IDX',
|
|
54
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_VERSION_ROW_IDX',
|
|
55
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_BLOCK_NUMBER_ROW_IDX',
|
|
56
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_SLOT_NUMBER_ROW_IDX',
|
|
57
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_TIMESTAMP_ROW_IDX',
|
|
58
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_COINBASE_ROW_IDX',
|
|
59
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_FEE_RECIPIENT_ROW_IDX',
|
|
60
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX',
|
|
61
|
+
'AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACTS_ROW_IDX',
|
|
62
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_ROW_IDX',
|
|
63
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX',
|
|
64
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX',
|
|
65
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX',
|
|
66
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX',
|
|
67
|
+
'AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX',
|
|
68
|
+
'AVM_PUBLIC_INPUTS_GAS_SETTINGS_ROW_IDX',
|
|
69
|
+
'AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX',
|
|
70
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX',
|
|
71
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX',
|
|
72
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX',
|
|
73
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX',
|
|
74
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX',
|
|
75
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX',
|
|
76
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
77
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
78
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
79
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX',
|
|
80
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
81
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
82
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
83
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_ROW_IDX',
|
|
84
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX',
|
|
85
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX',
|
|
86
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX',
|
|
87
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX',
|
|
88
|
+
'AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX',
|
|
89
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX',
|
|
90
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX',
|
|
91
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX',
|
|
92
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_LOGS_ROW_IDX',
|
|
93
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX',
|
|
94
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ROW_IDX',
|
|
95
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
96
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
97
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
98
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX',
|
|
99
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX',
|
|
100
|
+
'AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX',
|
|
101
|
+
'AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX',
|
|
102
|
+
'AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH',
|
|
103
|
+
'AVM_NUM_PUBLIC_INPUT_COLUMNS',
|
|
104
|
+
'AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH',
|
|
105
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_HEIGHT',
|
|
106
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT',
|
|
107
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_SIZE',
|
|
108
|
+
'NOTE_HASH_TREE_LEAF_COUNT',
|
|
109
|
+
'L1_TO_L2_MSG_TREE_LEAF_COUNT',
|
|
110
|
+
'FLAT_PUBLIC_LOGS_HEADER_LENGTH',
|
|
111
|
+
'FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH',
|
|
112
|
+
'PUBLIC_LOGS_LENGTH',
|
|
113
|
+
'PUBLIC_LOG_HEADER_LENGTH',
|
|
114
|
+
'PUBLIC_TX_L2_GAS_OVERHEAD',
|
|
115
|
+
'MAX_PROTOCOL_CONTRACTS',
|
|
116
|
+
'DEFAULT_MAX_DEBUG_LOG_MEMORY_READS'
|
|
97
117
|
];
|
|
98
118
|
const CPP_GENERATORS = [
|
|
119
|
+
'BLOCK_HEADER_HASH',
|
|
99
120
|
'PARTIAL_ADDRESS',
|
|
100
121
|
'CONTRACT_ADDRESS_V1',
|
|
101
|
-
'
|
|
122
|
+
'CONTRACT_CLASS_ID',
|
|
102
123
|
'PUBLIC_KEYS_HASH',
|
|
103
124
|
'NOTE_HASH_NONCE',
|
|
104
125
|
'UNIQUE_NOTE_HASH',
|
|
105
126
|
'SILOED_NOTE_HASH',
|
|
106
|
-
'
|
|
107
|
-
'
|
|
127
|
+
'SILOED_NULLIFIER',
|
|
128
|
+
'PUBLIC_LEAF_SLOT',
|
|
129
|
+
'PUBLIC_STORAGE_MAP_SLOT',
|
|
130
|
+
'PUBLIC_CALLDATA',
|
|
131
|
+
'PUBLIC_BYTECODE'
|
|
108
132
|
];
|
|
109
133
|
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',
|
|
134
|
+
'MAX_ETH_ADDRESS_VALUE',
|
|
145
135
|
'MEM_TAG_U1',
|
|
146
136
|
'MEM_TAG_U8',
|
|
147
137
|
'MEM_TAG_U16',
|
|
@@ -149,18 +139,196 @@ const PIL_CONSTANTS = [
|
|
|
149
139
|
'MEM_TAG_U64',
|
|
150
140
|
'MEM_TAG_U128',
|
|
151
141
|
'MEM_TAG_FF',
|
|
152
|
-
'
|
|
142
|
+
'AVM_BITWISE_AND_OP_ID',
|
|
143
|
+
'AVM_BITWISE_OR_OP_ID',
|
|
144
|
+
'AVM_BITWISE_XOR_OP_ID',
|
|
145
|
+
'AVM_KECCAKF1600_NUM_ROUNDS',
|
|
146
|
+
'AVM_KECCAKF1600_STATE_SIZE',
|
|
147
|
+
'AVM_TX_PHASE_VALUE_START',
|
|
148
|
+
'AVM_TX_PHASE_VALUE_SETUP',
|
|
149
|
+
'AVM_TX_PHASE_VALUE_LAST',
|
|
150
|
+
'AVM_HIGHEST_MEM_ADDRESS',
|
|
151
|
+
'AVM_MEMORY_NUM_BITS',
|
|
152
|
+
'AVM_MEMORY_SIZE',
|
|
153
|
+
'MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS',
|
|
154
|
+
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
155
|
+
'MAX_NOTE_HASHES_PER_TX',
|
|
156
|
+
'GRUMPKIN_ONE_X',
|
|
157
|
+
'GRUMPKIN_ONE_Y',
|
|
158
|
+
'AVM_PC_SIZE_IN_BITS',
|
|
159
|
+
'PUBLIC_DATA_TREE_HEIGHT',
|
|
160
|
+
'NULLIFIER_TREE_HEIGHT',
|
|
161
|
+
'NOTE_HASH_TREE_HEIGHT',
|
|
162
|
+
'L1_TO_L2_MSG_TREE_HEIGHT',
|
|
163
|
+
'UPDATED_CLASS_IDS_SLOT',
|
|
164
|
+
'UPDATES_DELAYED_PUBLIC_MUTABLE_VALUES_LEN',
|
|
165
|
+
'CANONICAL_AUTH_REGISTRY_ADDRESS',
|
|
166
|
+
'CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS',
|
|
167
|
+
'CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS',
|
|
168
|
+
'MULTI_CALL_ENTRYPOINT_ADDRESS',
|
|
169
|
+
'FEE_JUICE_ADDRESS',
|
|
170
|
+
'PUBLIC_CHECKS_ADDRESS',
|
|
171
|
+
'FEE_JUICE_BALANCES_SLOT',
|
|
172
|
+
'TIMESTAMP_OF_CHANGE_BIT_SIZE',
|
|
173
|
+
'UPDATES_DELAYED_PUBLIC_MUTABLE_METADATA_BIT_SIZE',
|
|
174
|
+
'UPDATES_SHARED_MUTABLE_METADATA_BIT_SIZE',
|
|
175
|
+
'MAX_ENQUEUED_CALLS_PER_TX',
|
|
176
|
+
'MAX_NOTE_HASHES_PER_TX',
|
|
177
|
+
'MAX_NULLIFIERS_PER_TX',
|
|
178
|
+
'MAX_L2_TO_L1_MSGS_PER_TX',
|
|
179
|
+
'MAX_PUBLIC_LOGS_PER_TX',
|
|
180
|
+
'MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS',
|
|
181
|
+
'MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
182
|
+
'MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX',
|
|
183
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_ROW_IDX',
|
|
184
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_CHAIN_ID_ROW_IDX',
|
|
185
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_VERSION_ROW_IDX',
|
|
186
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_BLOCK_NUMBER_ROW_IDX',
|
|
187
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_SLOT_NUMBER_ROW_IDX',
|
|
188
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_TIMESTAMP_ROW_IDX',
|
|
189
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_COINBASE_ROW_IDX',
|
|
190
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_FEE_RECIPIENT_ROW_IDX',
|
|
191
|
+
'AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX',
|
|
192
|
+
'AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACTS_ROW_IDX',
|
|
193
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_ROW_IDX',
|
|
194
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX',
|
|
195
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX',
|
|
196
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX',
|
|
197
|
+
'AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX',
|
|
198
|
+
'AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX',
|
|
199
|
+
'AVM_PUBLIC_INPUTS_GAS_SETTINGS_ROW_IDX',
|
|
200
|
+
'AVM_PUBLIC_INPUTS_GAS_SETTINGS_GAS_LIMITS_ROW_IDX',
|
|
201
|
+
'AVM_PUBLIC_INPUTS_GAS_SETTINGS_TEARDOWN_GAS_LIMITS_ROW_IDX',
|
|
202
|
+
'AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX',
|
|
203
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX',
|
|
204
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX',
|
|
205
|
+
'AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX',
|
|
206
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX',
|
|
207
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX',
|
|
208
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX',
|
|
209
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
210
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
211
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
212
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX',
|
|
213
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
214
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
215
|
+
'AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
216
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_ROW_IDX',
|
|
217
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX',
|
|
218
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX',
|
|
219
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX',
|
|
220
|
+
'AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX',
|
|
221
|
+
'AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX',
|
|
222
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX',
|
|
223
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX',
|
|
224
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX',
|
|
225
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_LOGS_ROW_IDX',
|
|
226
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX',
|
|
227
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ROW_IDX',
|
|
228
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX',
|
|
229
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX',
|
|
230
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX',
|
|
231
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX',
|
|
232
|
+
'AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX',
|
|
233
|
+
'AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX',
|
|
234
|
+
'AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX',
|
|
235
|
+
'AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH',
|
|
236
|
+
'AVM_NUM_PUBLIC_INPUT_COLUMNS',
|
|
237
|
+
'AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH',
|
|
238
|
+
'AVM_SUBTRACE_ID_EXECUTION',
|
|
239
|
+
'AVM_SUBTRACE_ID_ALU',
|
|
240
|
+
'AVM_SUBTRACE_ID_CAST',
|
|
241
|
+
'AVM_SUBTRACE_ID_SET',
|
|
242
|
+
'AVM_SUBTRACE_ID_BITWISE',
|
|
243
|
+
'AVM_SUBTRACE_ID_POSEIDON2_PERM',
|
|
244
|
+
'AVM_SUBTRACE_ID_TO_RADIX',
|
|
245
|
+
'AVM_SUBTRACE_ID_ECC',
|
|
246
|
+
'AVM_SUBTRACE_ID_KECCAKF1600',
|
|
247
|
+
'AVM_SUBTRACE_ID_CALLDATA_COPY',
|
|
248
|
+
'AVM_SUBTRACE_ID_SHA256_COMPRESSION',
|
|
249
|
+
'AVM_SUBTRACE_ID_RETURNDATA_COPY',
|
|
250
|
+
'AVM_DYN_GAS_ID_CALLDATACOPY',
|
|
251
|
+
'AVM_DYN_GAS_ID_RETURNDATACOPY',
|
|
252
|
+
'AVM_DYN_GAS_ID_TORADIX',
|
|
253
|
+
'AVM_DYN_GAS_ID_BITWISE',
|
|
254
|
+
'AVM_DYN_GAS_ID_EMITPUBLICLOG',
|
|
255
|
+
'AVM_DYN_GAS_ID_SSTORE',
|
|
256
|
+
'AVM_SUBTRACE_ID_GETCONTRACTINSTANCE',
|
|
257
|
+
'AVM_SUBTRACE_ID_EMITPUBLICLOG',
|
|
258
|
+
'AVM_EXEC_OP_ID_GETENVVAR',
|
|
259
|
+
'AVM_EXEC_OP_ID_MOV',
|
|
260
|
+
'AVM_EXEC_OP_ID_JUMP',
|
|
261
|
+
'AVM_EXEC_OP_ID_JUMPI',
|
|
262
|
+
'AVM_EXEC_OP_ID_CALL',
|
|
263
|
+
'AVM_EXEC_OP_ID_STATICCALL',
|
|
264
|
+
'AVM_EXEC_OP_ID_INTERNALCALL',
|
|
265
|
+
'AVM_EXEC_OP_ID_INTERNALRETURN',
|
|
266
|
+
'AVM_EXEC_OP_ID_RETURN',
|
|
267
|
+
'AVM_EXEC_OP_ID_REVERT',
|
|
268
|
+
'AVM_EXEC_OP_ID_SUCCESSCOPY',
|
|
269
|
+
'AVM_EXEC_OP_ID_ALU_ADD',
|
|
270
|
+
'AVM_EXEC_OP_ID_ALU_SUB',
|
|
271
|
+
'AVM_EXEC_OP_ID_ALU_MUL',
|
|
272
|
+
'AVM_EXEC_OP_ID_ALU_DIV',
|
|
273
|
+
'AVM_EXEC_OP_ID_ALU_FDIV',
|
|
274
|
+
'AVM_EXEC_OP_ID_ALU_EQ',
|
|
275
|
+
'AVM_EXEC_OP_ID_ALU_LT',
|
|
276
|
+
'AVM_EXEC_OP_ID_ALU_LTE',
|
|
277
|
+
'AVM_EXEC_OP_ID_ALU_NOT',
|
|
278
|
+
'AVM_EXEC_OP_ID_ALU_SHL',
|
|
279
|
+
'AVM_EXEC_OP_ID_ALU_SHR',
|
|
280
|
+
'AVM_EXEC_OP_ID_ALU_TRUNCATE',
|
|
281
|
+
'AVM_EXEC_OP_ID_RETURNDATASIZE',
|
|
282
|
+
'AVM_EXEC_OP_ID_DEBUGLOG',
|
|
283
|
+
'AVM_EXEC_OP_ID_SLOAD',
|
|
284
|
+
'AVM_EXEC_OP_ID_SSTORE',
|
|
285
|
+
'AVM_EXEC_OP_ID_NOTEHASH_EXISTS',
|
|
286
|
+
'AVM_EXEC_OP_ID_EMIT_NOTEHASH',
|
|
287
|
+
'AVM_EXEC_OP_ID_L1_TO_L2_MESSAGE_EXISTS',
|
|
288
|
+
'AVM_EXEC_OP_ID_NULLIFIER_EXISTS',
|
|
289
|
+
'AVM_EXEC_OP_ID_EMIT_NULLIFIER',
|
|
290
|
+
'AVM_EXEC_OP_ID_SENDL2TOL1MSG',
|
|
291
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_HEIGHT',
|
|
292
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT',
|
|
293
|
+
'AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_SIZE',
|
|
294
|
+
'AVM_RETRIEVED_BYTECODES_TREE_HEIGHT',
|
|
295
|
+
'AVM_RETRIEVED_BYTECODES_TREE_INITIAL_ROOT',
|
|
296
|
+
'AVM_RETRIEVED_BYTECODES_TREE_INITIAL_SIZE',
|
|
297
|
+
'NOTE_HASH_TREE_LEAF_COUNT',
|
|
298
|
+
'L1_TO_L2_MSG_TREE_LEAF_COUNT',
|
|
299
|
+
'FLAT_PUBLIC_LOGS_HEADER_LENGTH',
|
|
300
|
+
'FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH',
|
|
301
|
+
'PUBLIC_LOGS_LENGTH',
|
|
302
|
+
'PUBLIC_LOG_HEADER_LENGTH',
|
|
303
|
+
'MAX_PROTOCOL_CONTRACTS'
|
|
153
304
|
];
|
|
154
305
|
const PIL_GENERATORS = [
|
|
155
306
|
'PARTIAL_ADDRESS',
|
|
156
307
|
'CONTRACT_ADDRESS_V1',
|
|
157
|
-
'
|
|
308
|
+
'CONTRACT_CLASS_ID',
|
|
158
309
|
'PUBLIC_KEYS_HASH',
|
|
159
310
|
'NOTE_HASH_NONCE',
|
|
160
311
|
'UNIQUE_NOTE_HASH',
|
|
161
312
|
'SILOED_NOTE_HASH',
|
|
162
|
-
'
|
|
163
|
-
'
|
|
313
|
+
'SILOED_NULLIFIER',
|
|
314
|
+
'PUBLIC_LEAF_SLOT',
|
|
315
|
+
'PUBLIC_STORAGE_MAP_SLOT',
|
|
316
|
+
'PUBLIC_CALLDATA',
|
|
317
|
+
'PUBLIC_BYTECODE'
|
|
318
|
+
];
|
|
319
|
+
const SOLIDITY_CONSTANTS = [
|
|
320
|
+
'MAX_FIELD_VALUE',
|
|
321
|
+
'MAX_L2_TO_L1_MSGS_PER_TX',
|
|
322
|
+
'EMPTY_EPOCH_OUT_HASH',
|
|
323
|
+
'L1_TO_L2_MSG_SUBTREE_HEIGHT',
|
|
324
|
+
'NUM_MSGS_PER_BASE_PARITY',
|
|
325
|
+
'NUM_BASE_PARITY_PER_ROOT_PARITY',
|
|
326
|
+
'BLS12_POINT_COMPRESSED_BYTES',
|
|
327
|
+
'ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH',
|
|
328
|
+
'INITIAL_CHECKPOINT_NUMBER',
|
|
329
|
+
'GENESIS_ARCHIVE_ROOT',
|
|
330
|
+
'FEE_JUICE_ADDRESS',
|
|
331
|
+
'MAX_CHECKPOINTS_PER_EPOCH'
|
|
164
332
|
];
|
|
165
333
|
/**
|
|
166
334
|
* Processes a collection of constants and generates code to export them as TypeScript constants.
|
|
@@ -183,14 +351,19 @@ const PIL_GENERATORS = [
|
|
|
183
351
|
*/ function processConstantsCpp(constants, generatorIndices) {
|
|
184
352
|
const code = [];
|
|
185
353
|
Object.entries(constants).forEach(([key, value])=>{
|
|
186
|
-
if (CPP_CONSTANTS.includes(key) || key.startsWith('AVM_')
|
|
187
|
-
|
|
188
|
-
|
|
354
|
+
if (CPP_CONSTANTS.includes(key) || key.startsWith('AVM_')) {
|
|
355
|
+
if (BigInt(value) <= 2n ** 31n - 1n) {
|
|
356
|
+
code.push(`#define ${key} ${value}`);
|
|
357
|
+
} else if (BigInt(value) <= 2n ** 64n - 1n) {
|
|
358
|
+
code.push(`#define ${key} 0x${BigInt(value).toString(16)}`); // hex literals
|
|
359
|
+
} else {
|
|
360
|
+
code.push(`#define ${key} "0x${BigInt(value).toString(16).padStart(64, '0')}"`); // stringify large numbers
|
|
361
|
+
}
|
|
189
362
|
}
|
|
190
363
|
});
|
|
191
364
|
Object.entries(generatorIndices).forEach(([key, value])=>{
|
|
192
365
|
if (CPP_GENERATORS.includes(key)) {
|
|
193
|
-
code.push(`#define
|
|
366
|
+
code.push(`#define DOM_SEP__${key} ${value}UL`);
|
|
194
367
|
}
|
|
195
368
|
});
|
|
196
369
|
return code.join('\n');
|
|
@@ -210,7 +383,7 @@ const PIL_GENERATORS = [
|
|
|
210
383
|
});
|
|
211
384
|
Object.entries(generatorIndices).forEach(([key, value])=>{
|
|
212
385
|
if (PIL_GENERATORS.includes(key)) {
|
|
213
|
-
code.push(` pol
|
|
386
|
+
code.push(` pol DOM_SEP__${key} = ${value};`);
|
|
214
387
|
}
|
|
215
388
|
});
|
|
216
389
|
return code.join('\n');
|
|
@@ -239,7 +412,7 @@ const PIL_GENERATORS = [
|
|
|
239
412
|
*/ function processConstantsSolidity(constants, prefix = '') {
|
|
240
413
|
const code = [];
|
|
241
414
|
Object.entries(constants).forEach(([key, value])=>{
|
|
242
|
-
if (
|
|
415
|
+
if (SOLIDITY_CONSTANTS.includes(key)) {
|
|
243
416
|
code.push(` uint256 internal constant ${prefix}${key} = ${value};`);
|
|
244
417
|
}
|
|
245
418
|
});
|
|
@@ -247,30 +420,30 @@ const PIL_GENERATORS = [
|
|
|
247
420
|
}
|
|
248
421
|
/**
|
|
249
422
|
* Generate the constants file in Typescript.
|
|
250
|
-
*/ function generateTypescriptConstants({ constants,
|
|
423
|
+
*/ function generateTypescriptConstants({ constants, domainSeparatorEnum }, targetPath) {
|
|
251
424
|
const result = [
|
|
252
|
-
'
|
|
425
|
+
'// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants',
|
|
253
426
|
processConstantsTS(constants),
|
|
254
|
-
processEnumTS('
|
|
427
|
+
processEnumTS('DomainSeparator', domainSeparatorEnum)
|
|
255
428
|
].join('\n');
|
|
256
429
|
fs.writeFileSync(targetPath, result);
|
|
257
430
|
}
|
|
258
431
|
/**
|
|
259
432
|
* Generate the constants file in C++.
|
|
260
|
-
*/ function generateCppConstants({ constants,
|
|
433
|
+
*/ function generateCppConstants({ constants, domainSeparatorEnum }, targetPath) {
|
|
261
434
|
const resultCpp = `// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants in yarn-project/constants
|
|
262
435
|
#pragma once
|
|
263
436
|
|
|
264
|
-
${processConstantsCpp(constants,
|
|
437
|
+
${processConstantsCpp(constants, domainSeparatorEnum)}
|
|
265
438
|
`;
|
|
266
439
|
fs.writeFileSync(targetPath, resultCpp);
|
|
267
440
|
}
|
|
268
441
|
/**
|
|
269
442
|
* Generate the constants file in PIL.
|
|
270
|
-
*/ function generatePilConstants({ constants,
|
|
443
|
+
*/ function generatePilConstants({ constants, domainSeparatorEnum }, targetPath) {
|
|
271
444
|
const resultPil = `// GENERATED FILE - DO NOT EDIT, RUN yarn remake-constants in yarn-project/constants
|
|
272
445
|
namespace constants;
|
|
273
|
-
${processConstantsPil(constants,
|
|
446
|
+
${processConstantsPil(constants, domainSeparatorEnum)}
|
|
274
447
|
\n`;
|
|
275
448
|
fs.writeFileSync(targetPath, resultPil);
|
|
276
449
|
}
|
|
@@ -300,7 +473,7 @@ ${processConstantsSolidity(constants)}
|
|
|
300
473
|
* Parse the content of the constants file in Noir.
|
|
301
474
|
*/ function parseNoirFile(fileContent) {
|
|
302
475
|
const constantsExpressions = [];
|
|
303
|
-
const
|
|
476
|
+
const domainSeparatorEnum = {};
|
|
304
477
|
const emptyExpression = ()=>({
|
|
305
478
|
name: '',
|
|
306
479
|
content: []
|
|
@@ -319,10 +492,10 @@ ${processConstantsSolidity(constants)}
|
|
|
319
492
|
{
|
|
320
493
|
const [, name, _type, value, end] = line.match(/global\s+(\w+)(\s*:\s*\w+)?\s*=\s*([^;]*)(;)?/) || [];
|
|
321
494
|
if (name && value) {
|
|
322
|
-
const [, indexName] = name.match(/
|
|
495
|
+
const [, indexName] = name.match(/DOM_SEP__(\w+)/) || [];
|
|
323
496
|
if (indexName) {
|
|
324
497
|
// Generator index.
|
|
325
|
-
|
|
498
|
+
domainSeparatorEnum[indexName] = +value;
|
|
326
499
|
} else if (end) {
|
|
327
500
|
// A single line of expression.
|
|
328
501
|
constantsExpressions.push([
|
|
@@ -370,7 +543,7 @@ ${processConstantsSolidity(constants)}
|
|
|
370
543
|
const constants = evaluateExpressions(constantsExpressions);
|
|
371
544
|
return {
|
|
372
545
|
constants,
|
|
373
|
-
|
|
546
|
+
domainSeparatorEnum
|
|
374
547
|
};
|
|
375
548
|
}
|
|
376
549
|
/**
|
|
@@ -390,13 +563,18 @@ ${processConstantsSolidity(constants)}
|
|
|
390
563
|
// However, (1) the bigints need to be initialized from strings; (2) everything needs to
|
|
391
564
|
// be a bigint, even the actual constant values!
|
|
392
565
|
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
|
-
|
|
566
|
+
const guardedRhs = rhs// Remove 'as u8', 'as u32' and 'as u64' castings
|
|
567
|
+
.replaceAll(' as u8', '').replaceAll(' as u32', '').replaceAll(' as u64', '')// Remove the 'AztecAddress::from_field(...)' pattern.
|
|
568
|
+
// Also copes with the noir formatter re-formatting over multiple lines.
|
|
569
|
+
.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
570
|
.replace(/\(/g, '( ').replace(/\)/g, ' )')// We also make some space around common operators
|
|
397
571
|
.replace(/\+/g, ' + ').replace(/(?<!\/)\*(?!\/)/, ' * ')// We split the expression into terms...
|
|
398
572
|
.split(/\s+/)// ...and then we convert each term to a BigInt if it is a number.
|
|
399
|
-
.map((term)=>
|
|
573
|
+
.map((term)=>{
|
|
574
|
+
// Remove underscores from numeric literals (e.g., 6_000_000 -> 6000000)
|
|
575
|
+
const termWithoutUnderscores = term.replace(/_/g, '');
|
|
576
|
+
return isNaN(+termWithoutUnderscores) ? term : `BigInt('${termWithoutUnderscores}')`;
|
|
577
|
+
})// .. also, we convert the known bigints to BigInts.
|
|
400
578
|
.map((term)=>knownBigInts.includes(term) ? `BigInt(${term})` : term)// We join the terms back together.
|
|
401
579
|
.join(' ');
|
|
402
580
|
return `var ${name} = ${guardedRhs};`;
|
|
@@ -421,12 +599,9 @@ ${processConstantsSolidity(constants)}
|
|
|
421
599
|
// Cpp
|
|
422
600
|
const cppTargetPath = join(__dirname, CPP_AZTEC_CONSTANTS_FILE);
|
|
423
601
|
generateCppConstants(parsedContent, cppTargetPath);
|
|
424
|
-
// PIL
|
|
602
|
+
// PIL
|
|
425
603
|
const pilTargetPath = join(__dirname, PIL_AZTEC_CONSTANTS_FILE);
|
|
426
604
|
generatePilConstants(parsedContent, pilTargetPath);
|
|
427
|
-
// PIL - VM2
|
|
428
|
-
const pilVm2TargetPath = join(__dirname, PIL_VM2_AZTEC_CONSTANTS_FILE);
|
|
429
|
-
generatePilConstants(parsedContent, pilVm2TargetPath);
|
|
430
605
|
// Solidity
|
|
431
606
|
const solidityTargetPath = join(__dirname, SOLIDITY_CONSTANTS_FILE);
|
|
432
607
|
fs.mkdirSync(dirname(solidityTargetPath), {
|