Skip to content

Commit 6fcb2de

Browse files
authored
Merge pull request #171 from movementlabsxyz/sebtomba/merge-feature-flags
feat: Include Aptos feature flags required for pre-l1-merge framework…
2 parents 867b182 + bcfc56b commit 6fcb2de

File tree

2 files changed

+73
-1
lines changed

2 files changed

+73
-1
lines changed

aptos-move/aptos-release-builder/src/components/feature_flags.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,14 @@ pub enum FeatureFlag {
121121
DefaultToConcurrentFungibleBalance,
122122
LimitVMTypeSize,
123123
AbortIfMultisigPayloadMismatch,
124+
AllowSerializedScriptArgs,
125+
UseCompatibilityCheckerV2,
126+
EnableEnumTypes,
127+
FederatedKeyless,
128+
TransactionSimulationEnhancement,
129+
CollectionOwner,
130+
NativeMemoryOperations,
131+
AccountAbstraction,
124132
GovernedGasPool,
125133
DecommissionCoreResources,
126134
}
@@ -332,6 +340,20 @@ impl From<FeatureFlag> for AptosFeatureFlag {
332340
FeatureFlag::AbortIfMultisigPayloadMismatch => {
333341
AptosFeatureFlag::ABORT_IF_MULTISIG_PAYLOAD_MISMATCH
334342
},
343+
FeatureFlag::AllowSerializedScriptArgs => {
344+
AptosFeatureFlag::ALLOW_SERIALIZED_SCRIPT_ARGS
345+
},
346+
FeatureFlag::UseCompatibilityCheckerV2 => {
347+
AptosFeatureFlag::_USE_COMPATIBILITY_CHECKER_V2
348+
},
349+
FeatureFlag::EnableEnumTypes => AptosFeatureFlag::ENABLE_ENUM_TYPES,
350+
FeatureFlag::FederatedKeyless => AptosFeatureFlag::FEDERATED_KEYLESS,
351+
FeatureFlag::TransactionSimulationEnhancement => {
352+
AptosFeatureFlag::TRANSACTION_SIMULATION_ENHANCEMENT
353+
},
354+
FeatureFlag::CollectionOwner => AptosFeatureFlag::COLLECTION_OWNER,
355+
FeatureFlag::NativeMemoryOperations => AptosFeatureFlag::NATIVE_MEMORY_OPERATIONS,
356+
FeatureFlag::AccountAbstraction => AptosFeatureFlag::ACCOUNT_ABSTRACTION,
335357
FeatureFlag::GovernedGasPool => AptosFeatureFlag::GOVERNED_GAS_POOL,
336358
FeatureFlag::DecommissionCoreResources => AptosFeatureFlag::DECOMMISSION_CORE_RESOURCES,
337359
}
@@ -458,6 +480,20 @@ impl From<AptosFeatureFlag> for FeatureFlag {
458480
AptosFeatureFlag::ABORT_IF_MULTISIG_PAYLOAD_MISMATCH => {
459481
FeatureFlag::AbortIfMultisigPayloadMismatch
460482
},
483+
AptosFeatureFlag::ALLOW_SERIALIZED_SCRIPT_ARGS => {
484+
FeatureFlag::AllowSerializedScriptArgs
485+
},
486+
AptosFeatureFlag::_USE_COMPATIBILITY_CHECKER_V2 => {
487+
FeatureFlag::UseCompatibilityCheckerV2
488+
},
489+
AptosFeatureFlag::ENABLE_ENUM_TYPES => FeatureFlag::EnableEnumTypes,
490+
AptosFeatureFlag::FEDERATED_KEYLESS => FeatureFlag::FederatedKeyless,
491+
AptosFeatureFlag::TRANSACTION_SIMULATION_ENHANCEMENT => {
492+
FeatureFlag::TransactionSimulationEnhancement
493+
},
494+
AptosFeatureFlag::COLLECTION_OWNER => FeatureFlag::CollectionOwner,
495+
AptosFeatureFlag::NATIVE_MEMORY_OPERATIONS => FeatureFlag::NativeMemoryOperations,
496+
AptosFeatureFlag::ACCOUNT_ABSTRACTION => FeatureFlag::AccountAbstraction,
461497
AptosFeatureFlag::GOVERNED_GAS_POOL => FeatureFlag::GovernedGasPool,
462498
AptosFeatureFlag::DECOMMISSION_CORE_RESOURCES => FeatureFlag::DecommissionCoreResources,
463499
}

types/src/on_chain_config/aptos_features.rs

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,19 @@ pub enum FeatureFlag {
8686
DEFAULT_TO_CONCURRENT_FUNGIBLE_BALANCE = 68,
8787
LIMIT_VM_TYPE_SIZE = 69,
8888
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,
90100
DECOMMISSION_CORE_RESOURCES = 222,
101+
GOVERNED_GAS_POOL = 223,
91102
}
92103

93104
impl FeatureFlag {
@@ -97,7 +108,10 @@ impl FeatureFlag {
97108
FeatureFlag::TREAT_FRIEND_AS_PRIVATE,
98109
FeatureFlag::SHA_512_AND_RIPEMD_160_NATIVES,
99110
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.
100113
FeatureFlag::VM_BINARY_FORMAT_V6,
114+
FeatureFlag::VM_BINARY_FORMAT_V7,
101115
FeatureFlag::MULTI_ED25519_PK_VALIDATE_V2_NATIVES,
102116
FeatureFlag::BLAKE2B_256_NATIVE,
103117
FeatureFlag::RESOURCE_GROUPS,
@@ -107,9 +121,12 @@ impl FeatureFlag {
107121
FeatureFlag::BLS12_381_STRUCTURES,
108122
FeatureFlag::ED25519_PUBKEY_VALIDATE_RETURN_FALSE_WRONG_LENGTH,
109123
FeatureFlag::STRUCT_CONSTRUCTORS,
124+
// FeatureFlag::PERIODICAL_REWARD_RATE_DECREASE,
125+
FeatureFlag::PARTIAL_GOVERNANCE_VOTING,
110126
FeatureFlag::SIGNATURE_CHECKER_V2,
111127
FeatureFlag::STORAGE_SLOT_METADATA,
112128
FeatureFlag::CHARGE_INVARIANT_VIOLATION,
129+
FeatureFlag::DELEGATION_POOL_PARTIAL_GOVERNANCE_VOTING,
113130
FeatureFlag::APTOS_UNIQUE_IDENTIFIERS,
114131
FeatureFlag::GAS_PAYER_ENABLED,
115132
FeatureFlag::BULLETPROOFS_NATIVES,
@@ -134,6 +151,7 @@ impl FeatureFlag {
134151
FeatureFlag::WEBAUTHN_SIGNATURE,
135152
// FeatureFlag::RECONFIGURE_WITH_DKG, //TODO: re-enable once randomness is ready.
136153
FeatureFlag::KEYLESS_ACCOUNTS,
154+
FeatureFlag::FEDERATED_KEYLESS,
137155
FeatureFlag::KEYLESS_BUT_ZKLESS_ACCOUNTS,
138156
FeatureFlag::JWK_CONSENSUS,
139157
FeatureFlag::REFUNDABLE_BYTES,
@@ -153,6 +171,12 @@ impl FeatureFlag {
153171
FeatureFlag::CONCURRENT_FUNGIBLE_BALANCE,
154172
FeatureFlag::LIMIT_VM_TYPE_SIZE,
155173
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,
156180
// FeatureFlag::GOVERNED_GAS_POOL, // governed gas pool should be voted in
157181
]
158182
}
@@ -230,6 +254,10 @@ impl Features {
230254
self.is_enabled(FeatureFlag::STORAGE_SLOT_METADATA)
231255
}
232256

257+
pub fn is_account_abstraction_enabled(&self) -> bool {
258+
self.is_enabled(FeatureFlag::ACCOUNT_ABSTRACTION)
259+
}
260+
233261
pub fn is_module_event_enabled(&self) -> bool {
234262
self.is_enabled(FeatureFlag::MODULE_EVENT)
235263
}
@@ -279,6 +307,10 @@ impl Features {
279307
self.is_enabled(FeatureFlag::KEYLESS_ACCOUNTS_WITH_PASSKEYS)
280308
}
281309

310+
pub fn is_federated_keyless_enabled(&self) -> bool {
311+
self.is_enabled(FeatureFlag::FEDERATED_KEYLESS)
312+
}
313+
282314
pub fn is_remove_detailed_error_from_hash_enabled(&self) -> bool {
283315
self.is_enabled(FeatureFlag::REMOVE_DETAILED_ERROR_FROM_HASH)
284316
}
@@ -295,6 +327,10 @@ impl Features {
295327
self.is_enabled(FeatureFlag::ABORT_IF_MULTISIG_PAYLOAD_MISMATCH)
296328
}
297329

330+
pub fn is_native_memory_operations_enabled(&self) -> bool {
331+
self.is_enabled(FeatureFlag::NATIVE_MEMORY_OPERATIONS)
332+
}
333+
298334
pub fn get_max_identifier_size(&self) -> u64 {
299335
if self.is_enabled(FeatureFlag::LIMIT_MAX_IDENTIFIER_LENGTH) {
300336
IDENTIFIER_SIZE_MAX

0 commit comments

Comments
 (0)