@@ -86,8 +86,19 @@ pub enum FeatureFlag {
86
86
DEFAULT_TO_CONCURRENT_FUNGIBLE_BALANCE = 68 ,
87
87
LIMIT_VM_TYPE_SIZE = 69 ,
88
88
ABORT_IF_MULTISIG_PAYLOAD_MISMATCH = 70 ,
89
- GOVERNED_GAS_POOL = 73 ,
89
+ ALLOW_SERIALIZED_SCRIPT_ARGS = 72 ,
90
+ /// Enabled on mainnet, cannot be disabled.
91
+ _USE_COMPATIBILITY_CHECKER_V2 = 73 ,
92
+ ENABLE_ENUM_TYPES = 74 ,
93
+ FEDERATED_KEYLESS = 77 ,
94
+ TRANSACTION_SIMULATION_ENHANCEMENT = 78 ,
95
+ COLLECTION_OWNER = 79 ,
96
+ /// covers mem::swap and vector::move_range
97
+ /// AIP-105 (https://github.com/aptos-foundation/AIPs/blob/main/aips/aip-105.md)
98
+ NATIVE_MEMORY_OPERATIONS = 80 ,
99
+ ACCOUNT_ABSTRACTION = 85 ,
90
100
DECOMMISSION_CORE_RESOURCES = 222 ,
101
+ GOVERNED_GAS_POOL = 223 ,
91
102
}
92
103
93
104
impl FeatureFlag {
@@ -97,7 +108,10 @@ impl FeatureFlag {
97
108
FeatureFlag :: TREAT_FRIEND_AS_PRIVATE ,
98
109
FeatureFlag :: SHA_512_AND_RIPEMD_160_NATIVES ,
99
110
FeatureFlag :: APTOS_STD_CHAIN_ID_NATIVES ,
111
+ // Feature flag V6 is used to enable metadata v1 format and needs to stay on, even
112
+ // if we enable a higher version.
100
113
FeatureFlag :: VM_BINARY_FORMAT_V6 ,
114
+ FeatureFlag :: VM_BINARY_FORMAT_V7 ,
101
115
FeatureFlag :: MULTI_ED25519_PK_VALIDATE_V2_NATIVES ,
102
116
FeatureFlag :: BLAKE2B_256_NATIVE ,
103
117
FeatureFlag :: RESOURCE_GROUPS ,
@@ -107,9 +121,12 @@ impl FeatureFlag {
107
121
FeatureFlag :: BLS12_381_STRUCTURES ,
108
122
FeatureFlag :: ED25519_PUBKEY_VALIDATE_RETURN_FALSE_WRONG_LENGTH ,
109
123
FeatureFlag :: STRUCT_CONSTRUCTORS ,
124
+ // FeatureFlag::PERIODICAL_REWARD_RATE_DECREASE,
125
+ FeatureFlag :: PARTIAL_GOVERNANCE_VOTING ,
110
126
FeatureFlag :: SIGNATURE_CHECKER_V2 ,
111
127
FeatureFlag :: STORAGE_SLOT_METADATA ,
112
128
FeatureFlag :: CHARGE_INVARIANT_VIOLATION ,
129
+ FeatureFlag :: DELEGATION_POOL_PARTIAL_GOVERNANCE_VOTING ,
113
130
FeatureFlag :: APTOS_UNIQUE_IDENTIFIERS ,
114
131
FeatureFlag :: GAS_PAYER_ENABLED ,
115
132
FeatureFlag :: BULLETPROOFS_NATIVES ,
@@ -134,6 +151,7 @@ impl FeatureFlag {
134
151
FeatureFlag :: WEBAUTHN_SIGNATURE ,
135
152
// FeatureFlag::RECONFIGURE_WITH_DKG, //TODO: re-enable once randomness is ready.
136
153
FeatureFlag :: KEYLESS_ACCOUNTS ,
154
+ FeatureFlag :: FEDERATED_KEYLESS ,
137
155
FeatureFlag :: KEYLESS_BUT_ZKLESS_ACCOUNTS ,
138
156
FeatureFlag :: JWK_CONSENSUS ,
139
157
FeatureFlag :: REFUNDABLE_BYTES ,
@@ -153,6 +171,12 @@ impl FeatureFlag {
153
171
FeatureFlag :: CONCURRENT_FUNGIBLE_BALANCE ,
154
172
FeatureFlag :: LIMIT_VM_TYPE_SIZE ,
155
173
FeatureFlag :: ABORT_IF_MULTISIG_PAYLOAD_MISMATCH ,
174
+ FeatureFlag :: ALLOW_SERIALIZED_SCRIPT_ARGS ,
175
+ FeatureFlag :: ENABLE_ENUM_TYPES ,
176
+ FeatureFlag :: TRANSACTION_SIMULATION_ENHANCEMENT ,
177
+ FeatureFlag :: NATIVE_MEMORY_OPERATIONS ,
178
+ FeatureFlag :: COLLECTION_OWNER ,
179
+ FeatureFlag :: ACCOUNT_ABSTRACTION ,
156
180
// FeatureFlag::GOVERNED_GAS_POOL, // governed gas pool should be voted in
157
181
]
158
182
}
@@ -230,6 +254,10 @@ impl Features {
230
254
self . is_enabled ( FeatureFlag :: STORAGE_SLOT_METADATA )
231
255
}
232
256
257
+ pub fn is_account_abstraction_enabled ( & self ) -> bool {
258
+ self . is_enabled ( FeatureFlag :: ACCOUNT_ABSTRACTION )
259
+ }
260
+
233
261
pub fn is_module_event_enabled ( & self ) -> bool {
234
262
self . is_enabled ( FeatureFlag :: MODULE_EVENT )
235
263
}
@@ -279,6 +307,10 @@ impl Features {
279
307
self . is_enabled ( FeatureFlag :: KEYLESS_ACCOUNTS_WITH_PASSKEYS )
280
308
}
281
309
310
+ pub fn is_federated_keyless_enabled ( & self ) -> bool {
311
+ self . is_enabled ( FeatureFlag :: FEDERATED_KEYLESS )
312
+ }
313
+
282
314
pub fn is_remove_detailed_error_from_hash_enabled ( & self ) -> bool {
283
315
self . is_enabled ( FeatureFlag :: REMOVE_DETAILED_ERROR_FROM_HASH )
284
316
}
@@ -295,6 +327,10 @@ impl Features {
295
327
self . is_enabled ( FeatureFlag :: ABORT_IF_MULTISIG_PAYLOAD_MISMATCH )
296
328
}
297
329
330
+ pub fn is_native_memory_operations_enabled ( & self ) -> bool {
331
+ self . is_enabled ( FeatureFlag :: NATIVE_MEMORY_OPERATIONS )
332
+ }
333
+
298
334
pub fn get_max_identifier_size ( & self ) -> u64 {
299
335
if self . is_enabled ( FeatureFlag :: LIMIT_MAX_IDENTIFIER_LENGTH ) {
300
336
IDENTIFIER_SIZE_MAX
0 commit comments