diff --git a/Cargo.lock b/Cargo.lock index 639e2a6016..76d53a4e80 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9669,7 +9669,7 @@ dependencies = [ [[package]] name = "starcoin-framework" version = "11.0.0" -source = "git+https://github.com/starcoinorg/starcoin-framework?rev=0d3921265ed6a519bd09b1111949db2593a6f9c1#0d3921265ed6a519bd09b1111949db2593a6f9c1" +source = "git+https://github.com/starcoinorg/starcoin-framework?rev=345a3900a0064dc57a9560235bc72c12f03448b1#345a3900a0064dc57a9560235bc72c12f03448b1" dependencies = [ "anyhow", "include_dir", diff --git a/Cargo.toml b/Cargo.toml index 773db1d859..d8cee9cb41 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -442,7 +442,7 @@ starcoin-crypto = { git = "https://github.com/starcoinorg/starcoin-crypto", rev starcoin-decrypt = { path = "commons/decrypt" } starcoin-dev = { path = "vm/dev" } starcoin-executor = { path = "executor" } -starcoin-framework = { git = "https://github.com/starcoinorg/starcoin-framework", rev = "0d3921265ed6a519bd09b1111949db2593a6f9c1" } +starcoin-framework = { git = "https://github.com/starcoinorg/starcoin-framework", rev = "345a3900a0064dc57a9560235bc72c12f03448b1" } starcoin-genesis = { path = "genesis" } starcoin-logger = { path = "commons/logger" } starcoin-metrics = { path = "commons/metrics" } diff --git a/cmd/starcoin/src/dev/mod.rs b/cmd/starcoin/src/dev/mod.rs index cb79b5fda3..77b45842d4 100644 --- a/cmd/starcoin/src/dev/mod.rs +++ b/cmd/starcoin/src/dev/mod.rs @@ -3,6 +3,7 @@ pub use call_contract_cmd::*; pub use compile_cmd::*; +pub use concurrency_level_cmd::*; pub use deploy_cmd::*; pub use get_coin_cmd::*; pub use package_cmd::*; diff --git a/cmd/starcoin/src/lib.rs b/cmd/starcoin/src/lib.rs index ab89cc8d22..7fa6173e33 100644 --- a/cmd/starcoin/src/lib.rs +++ b/cmd/starcoin/src/lib.rs @@ -141,7 +141,8 @@ pub fn add_command( ) .subcommand(dev::panic_cmd::PanicCommand) .subcommand(dev::sleep_cmd::SleepCommand) - .subcommand(dev::gen_block_cmd::GenBlockCommand), + .subcommand(dev::gen_block_cmd::GenBlockCommand) + .subcommand(dev::ConcurrencyLevelCommand), ) .command(CustomCommand::with_name("contract").subcommand(contract::GetContractDataCommand)) } diff --git a/config/src/genesis_config.rs b/config/src/genesis_config.rs index 5496a9922f..f553cb5013 100644 --- a/config/src/genesis_config.rs +++ b/config/src/genesis_config.rs @@ -833,7 +833,7 @@ pub static G_HALLEY_CONFIG: Lazy = Lazy::new(|| { GenesisConfig { genesis_block_parameter: GenesisBlockParameterConfig::Static(GenesisBlockParameter { parent_hash: HashValue::sha3_256_of(b"starcoin_halley"), - timestamp: 1676002743000, + timestamp: 1693798675000, difficulty: 100.into(), }), version: Version { major: 1 }, diff --git a/genesis/generated/halley/genesis b/genesis/generated/halley/genesis index 19c9581c4c..0b31f956ca 100644 Binary files a/genesis/generated/halley/genesis and b/genesis/generated/halley/genesis differ diff --git a/genesis/src/lib.rs b/genesis/src/lib.rs index 89e7cf19cb..f16dc6b0ed 100644 --- a/genesis/src/lib.rs +++ b/genesis/src/lib.rs @@ -586,7 +586,7 @@ mod tests { return Ok(()); } match net.stdlib_version() { - // test whether it is successful that the function initialize_v3 initializes genesis block for the gas scheduls + // test whether it is successful that the function initialize_v2 initializes genesis block for the gas schedules // if it is, the gas schedule in genesis block will be the same as the one from the latest cost table StdlibVersion::Version(12) | StdlibVersion::Latest => { info!( @@ -635,10 +635,7 @@ mod tests { .ok_or_else(|| { anyhow::anyhow!("Expect 0x1::GasSchedule::gas_schedule() return value") })?; - let mut framework_gas_shedule = bcs_ext::from_bytes::(&data)?; - framework_gas_shedule - .entries - .retain(|(key, _value)| !key.is_empty()); + let framework_gas_shedule = bcs_ext::from_bytes::(&data)?; assert!( !framework_gas_shedule.is_different(genesis_gas_schedule.as_ref().unwrap()), diff --git a/node/src/node.rs b/node/src/node.rs index 4f10c33f22..fd3e7fcf77 100644 --- a/node/src/node.rs +++ b/node/src/node.rs @@ -12,7 +12,6 @@ use futures::channel::oneshot; use futures::executor::block_on; use futures_timer::Delay; use network_api::{PeerProvider, PeerSelector, PeerStrategy}; -use num_cpus; use starcoin_account_service::{AccountEventService, AccountService, AccountStorage}; use starcoin_block_relayer::BlockRelayer; use starcoin_chain_notify::ChainNotifyHandlerService; @@ -55,7 +54,6 @@ use starcoin_sync::verified_rpc_client::VerifiedRpcClient; use starcoin_txpool::TxPoolActorService; use starcoin_types::system_events::{SystemShutdown, SystemStarted}; use starcoin_vm_runtime::metrics::VMMetrics; -use starcoin_vm_runtime::starcoin_vm::StarcoinVM; use std::sync::Arc; use std::time::{Duration, SystemTime}; @@ -235,7 +233,7 @@ impl NodeService { } // XXX FIXME YSG add execute_config - StarcoinVM::set_concurrency_level_once(num_cpus::get()); + // StarcoinVM::set_concurrency_level_once(num_cpus::get()); let (start_sender, start_receiver) = oneshot::channel(); let join_handle = timeout_join_handler::spawn(move || { let system = System::with_tokio_rt(|| { diff --git a/storage/src/upgrade.rs b/storage/src/upgrade.rs index 87b259026c..b8fcd18b43 100644 --- a/storage/src/upgrade.rs +++ b/storage/src/upgrade.rs @@ -22,10 +22,10 @@ use std::cmp::Ordering; pub struct DBUpgrade; -pub static BARNARD_HARD_FORK_HEIGHT: BlockNumber = 9716880; +pub static BARNARD_HARD_FORK_HEIGHT: BlockNumber = 16057420; pub static BARNARD_HARD_FORK_HASH: Lazy = Lazy::new(|| { HashValue::from_hex_literal( - "0x98f32397569e26540985f0d487c5e7cc229a8c9be9afe10f973b3d95204d06d7", + "0x602bb269e3a221510f82b0b812304e767457f73ac3203663bd401ef3d29bcc97", ) .expect("") }); diff --git a/vm/stdlib/compiled/12/11-12/stdlib.blob b/vm/stdlib/compiled/12/11-12/stdlib.blob index efa1570a8b..e17900e644 100644 Binary files a/vm/stdlib/compiled/12/11-12/stdlib.blob and b/vm/stdlib/compiled/12/11-12/stdlib.blob differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/037_Account.mv b/vm/stdlib/compiled/12/11-12/stdlib/037_Account.mv index a3e77c2955..1a3465588c 100644 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/037_Account.mv and b/vm/stdlib/compiled/12/11-12/stdlib/037_Account.mv differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/055_GasSchedule.mv b/vm/stdlib/compiled/12/11-12/stdlib/055_GasSchedule.mv deleted file mode 100644 index 7d3359f06d..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/055_GasSchedule.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/056_GenesisSignerCapability.mv b/vm/stdlib/compiled/12/11-12/stdlib/056_GenesisSignerCapability.mv deleted file mode 100644 index c7e787b2b2..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/056_GenesisSignerCapability.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/057_EasyGasScript.mv b/vm/stdlib/compiled/12/11-12/stdlib/057_EasyGasScript.mv deleted file mode 100644 index 260e57f891..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/057_EasyGasScript.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/057_Oracle.mv b/vm/stdlib/compiled/12/11-12/stdlib/057_Oracle.mv deleted file mode 100644 index 7e71bf7c21..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/057_Oracle.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/091_TransferScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/057_TransferScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/091_TransferScripts.mv rename to vm/stdlib/compiled/12/11-12/stdlib/057_TransferScripts.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/058_EasyGasScript.mv b/vm/stdlib/compiled/12/11-12/stdlib/058_EasyGasScript.mv new file mode 100644 index 0000000000..16d8f1836f Binary files /dev/null and b/vm/stdlib/compiled/12/11-12/stdlib/058_EasyGasScript.mv differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/058_PriceOracle.mv b/vm/stdlib/compiled/12/11-12/stdlib/058_PriceOracle.mv deleted file mode 100644 index b8584e7754..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/058_PriceOracle.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/052_Epoch.mv b/vm/stdlib/compiled/12/11-12/stdlib/059_Epoch.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/052_Epoch.mv rename to vm/stdlib/compiled/12/11-12/stdlib/059_Epoch.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/053_EventUtil.mv b/vm/stdlib/compiled/12/11-12/stdlib/060_EventUtil.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/053_EventUtil.mv rename to vm/stdlib/compiled/12/11-12/stdlib/060_EventUtil.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/054_FixedPoint32.mv b/vm/stdlib/compiled/12/11-12/stdlib/061_FixedPoint32.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/054_FixedPoint32.mv rename to vm/stdlib/compiled/12/11-12/stdlib/061_FixedPoint32.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/061_NFT.mv b/vm/stdlib/compiled/12/11-12/stdlib/061_NFT.mv deleted file mode 100644 index 2e48c35167..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/061_NFT.mv and /dev/null differ diff --git a/vm/stdlib/compiled/latest/stdlib/061_GasSchedule.mv b/vm/stdlib/compiled/12/11-12/stdlib/062_GasSchedule.mv similarity index 76% rename from vm/stdlib/compiled/latest/stdlib/061_GasSchedule.mv rename to vm/stdlib/compiled/12/11-12/stdlib/062_GasSchedule.mv index a65c9bae97..a88bc854cb 100644 Binary files a/vm/stdlib/compiled/latest/stdlib/061_GasSchedule.mv and b/vm/stdlib/compiled/12/11-12/stdlib/062_GasSchedule.mv differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/063_MerkleProof.mv b/vm/stdlib/compiled/12/11-12/stdlib/063_MerkleProof.mv deleted file mode 100644 index 078282555e..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/063_MerkleProof.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/059_STCUSDOracle.mv b/vm/stdlib/compiled/12/11-12/stdlib/063_STCUSDOracle.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/059_STCUSDOracle.mv rename to vm/stdlib/compiled/12/11-12/stdlib/063_STCUSDOracle.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/064_MerkleNFTDistributor.mv b/vm/stdlib/compiled/12/11-12/stdlib/064_MerkleNFTDistributor.mv deleted file mode 100644 index 9b6c88aad4..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/064_MerkleNFTDistributor.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/060_Offer.mv b/vm/stdlib/compiled/12/11-12/stdlib/064_Offer.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/060_Offer.mv rename to vm/stdlib/compiled/12/11-12/stdlib/064_Offer.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/064_NFT.mv b/vm/stdlib/compiled/12/11-12/stdlib/065_NFT.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/064_NFT.mv rename to vm/stdlib/compiled/12/11-12/stdlib/065_NFT.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/062_LanguageVersion.mv b/vm/stdlib/compiled/12/11-12/stdlib/066_LanguageVersion.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/062_LanguageVersion.mv rename to vm/stdlib/compiled/12/11-12/stdlib/066_LanguageVersion.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/066_MerkleProof.mv b/vm/stdlib/compiled/12/11-12/stdlib/067_MerkleProof.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/066_MerkleProof.mv rename to vm/stdlib/compiled/12/11-12/stdlib/067_MerkleProof.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/067_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/067_StdlibUpgradeScripts.mv deleted file mode 100644 index a9bbbad6c8..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/067_StdlibUpgradeScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/068_Genesis.mv b/vm/stdlib/compiled/12/11-12/stdlib/068_Genesis.mv deleted file mode 100644 index a993a71d8b..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/068_Genesis.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/067_MerkleNFTDistributor.mv b/vm/stdlib/compiled/12/11-12/stdlib/068_MerkleNFTDistributor.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/067_MerkleNFTDistributor.mv rename to vm/stdlib/compiled/12/11-12/stdlib/068_MerkleNFTDistributor.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/065_IdentifierNFT.mv b/vm/stdlib/compiled/12/11-12/stdlib/069_IdentifierNFT.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/065_IdentifierNFT.mv rename to vm/stdlib/compiled/12/11-12/stdlib/069_IdentifierNFT.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/066_GenesisNFT.mv b/vm/stdlib/compiled/12/11-12/stdlib/070_GenesisNFT.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/066_GenesisNFT.mv rename to vm/stdlib/compiled/12/11-12/stdlib/070_GenesisNFT.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/070_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/070_StdlibUpgradeScripts.mv deleted file mode 100644 index 6c017b7a1f..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/070_StdlibUpgradeScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/071_Genesis.mv b/vm/stdlib/compiled/12/11-12/stdlib/071_Genesis.mv deleted file mode 100644 index 8d67e880e7..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/071_Genesis.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/071_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/071_StdlibUpgradeScripts.mv new file mode 100644 index 0000000000..b53e7f3f3f Binary files /dev/null and b/vm/stdlib/compiled/12/11-12/stdlib/071_StdlibUpgradeScripts.mv differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/072_Genesis.mv b/vm/stdlib/compiled/12/11-12/stdlib/072_Genesis.mv new file mode 100644 index 0000000000..78701566bc Binary files /dev/null and b/vm/stdlib/compiled/12/11-12/stdlib/072_Genesis.mv differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/069_GenesisNFTScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/073_GenesisNFTScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/069_GenesisNFTScripts.mv rename to vm/stdlib/compiled/12/11-12/stdlib/073_GenesisNFTScripts.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/073_NFTGallery.mv b/vm/stdlib/compiled/12/11-12/stdlib/073_NFTGallery.mv deleted file mode 100644 index 7b0364a1ab..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/073_NFTGallery.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/070_IdentifierNFTScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/074_IdentifierNFTScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/070_IdentifierNFTScripts.mv rename to vm/stdlib/compiled/12/11-12/stdlib/074_IdentifierNFTScripts.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/071_MintDaoProposal.mv b/vm/stdlib/compiled/12/11-12/stdlib/075_MintDaoProposal.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/071_MintDaoProposal.mv rename to vm/stdlib/compiled/12/11-12/stdlib/075_MintDaoProposal.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/072_ModuleUpgradeScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/076_ModuleUpgradeScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/072_ModuleUpgradeScripts.mv rename to vm/stdlib/compiled/12/11-12/stdlib/076_ModuleUpgradeScripts.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/076_PriceOracleAggregator.mv b/vm/stdlib/compiled/12/11-12/stdlib/076_PriceOracleAggregator.mv deleted file mode 100644 index 2dbc3133f6..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/076_PriceOracleAggregator.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/076_NFTGallery.mv b/vm/stdlib/compiled/12/11-12/stdlib/077_NFTGallery.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/076_NFTGallery.mv rename to vm/stdlib/compiled/12/11-12/stdlib/077_NFTGallery.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/074_NFTGalleryScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/078_NFTGalleryScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/074_NFTGalleryScripts.mv rename to vm/stdlib/compiled/12/11-12/stdlib/078_NFTGalleryScripts.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/078_Secp256k1.mv b/vm/stdlib/compiled/12/11-12/stdlib/078_Secp256k1.mv deleted file mode 100644 index a5eebc7a85..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/078_Secp256k1.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/075_OnChainConfigScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/079_OnChainConfigScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/075_OnChainConfigScripts.mv rename to vm/stdlib/compiled/12/11-12/stdlib/079_OnChainConfigScripts.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/079_PriceOracleAggregator.mv b/vm/stdlib/compiled/12/11-12/stdlib/080_PriceOracleAggregator.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/079_PriceOracleAggregator.mv rename to vm/stdlib/compiled/12/11-12/stdlib/080_PriceOracleAggregator.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/077_PriceOracleScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/081_PriceOracleScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/077_PriceOracleScripts.mv rename to vm/stdlib/compiled/12/11-12/stdlib/081_PriceOracleScripts.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/081_SimpleMap.mv b/vm/stdlib/compiled/12/11-12/stdlib/081_SimpleMap.mv deleted file mode 100644 index 5fda8be8e3..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/081_SimpleMap.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/081_Secp256k1.mv b/vm/stdlib/compiled/12/11-12/stdlib/082_Secp256k1.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/081_Secp256k1.mv rename to vm/stdlib/compiled/12/11-12/stdlib/082_Secp256k1.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/079_Signature.mv b/vm/stdlib/compiled/12/11-12/stdlib/083_Signature.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/079_Signature.mv rename to vm/stdlib/compiled/12/11-12/stdlib/083_Signature.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/083_StarcoinVerifier.mv b/vm/stdlib/compiled/12/11-12/stdlib/083_StarcoinVerifier.mv deleted file mode 100644 index 1f79c3cc85..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/083_StarcoinVerifier.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/080_SharedEd25519PublicKey.mv b/vm/stdlib/compiled/12/11-12/stdlib/084_SharedEd25519PublicKey.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/080_SharedEd25519PublicKey.mv rename to vm/stdlib/compiled/12/11-12/stdlib/084_SharedEd25519PublicKey.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/084_String.mv b/vm/stdlib/compiled/12/11-12/stdlib/084_String.mv deleted file mode 100644 index a718cd408f..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/084_String.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/084_SimpleMap.mv b/vm/stdlib/compiled/12/11-12/stdlib/085_SimpleMap.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/084_SimpleMap.mv rename to vm/stdlib/compiled/12/11-12/stdlib/085_SimpleMap.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/082_StructuredHash.mv b/vm/stdlib/compiled/12/11-12/stdlib/086_StructuredHash.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/082_StructuredHash.mv rename to vm/stdlib/compiled/12/11-12/stdlib/086_StructuredHash.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/086_StarcoinVerifier.mv b/vm/stdlib/compiled/12/11-12/stdlib/087_StarcoinVerifier.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/086_StarcoinVerifier.mv rename to vm/stdlib/compiled/12/11-12/stdlib/087_StarcoinVerifier.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/087_TransactionManager.mv b/vm/stdlib/compiled/12/11-12/stdlib/087_TransactionManager.mv deleted file mode 100644 index 6f1c313bfa..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/087_TransactionManager.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/087_String.mv b/vm/stdlib/compiled/12/11-12/stdlib/088_String.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/087_String.mv rename to vm/stdlib/compiled/12/11-12/stdlib/088_String.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/088_TransferScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/088_TransferScripts.mv deleted file mode 100644 index dca83ebaca..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/088_TransferScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/085_Table.mv b/vm/stdlib/compiled/12/11-12/stdlib/089_Table.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/085_Table.mv rename to vm/stdlib/compiled/12/11-12/stdlib/089_Table.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/089_TreasuryScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/089_TreasuryScripts.mv deleted file mode 100644 index 23b7501a57..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/089_TreasuryScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/086_TransactionTimeout.mv b/vm/stdlib/compiled/12/11-12/stdlib/090_TransactionTimeout.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/086_TransactionTimeout.mv rename to vm/stdlib/compiled/12/11-12/stdlib/090_TransactionTimeout.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/090_TypeInfo.mv b/vm/stdlib/compiled/12/11-12/stdlib/090_TypeInfo.mv deleted file mode 100644 index 3b23e889b2..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/090_TypeInfo.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/090_TransactionManager.mv b/vm/stdlib/compiled/12/11-12/stdlib/091_TransactionManager.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/090_TransactionManager.mv rename to vm/stdlib/compiled/12/11-12/stdlib/091_TransactionManager.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/091_U256.mv b/vm/stdlib/compiled/12/11-12/stdlib/091_U256.mv deleted file mode 100644 index e923809b5f..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/091_U256.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/092_YieldFarming.mv b/vm/stdlib/compiled/12/11-12/stdlib/092_YieldFarming.mv deleted file mode 100644 index 5095009085..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/092_YieldFarming.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/093_YieldFarmingV2.mv b/vm/stdlib/compiled/12/11-12/stdlib/093_YieldFarmingV2.mv deleted file mode 100644 index e0e4f01ae5..0000000000 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/093_YieldFarmingV2.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/037_Account.mv b/vm/stdlib/compiled/12/stdlib/037_Account.mv index a3e77c2955..1a3465588c 100644 Binary files a/vm/stdlib/compiled/12/stdlib/037_Account.mv and b/vm/stdlib/compiled/12/stdlib/037_Account.mv differ diff --git a/vm/stdlib/compiled/12/stdlib/055_GasSchedule.mv b/vm/stdlib/compiled/12/stdlib/055_GasSchedule.mv deleted file mode 100644 index 7d3359f06d..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/055_GasSchedule.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/056_GenesisSignerCapability.mv b/vm/stdlib/compiled/12/stdlib/056_GenesisSignerCapability.mv deleted file mode 100644 index c7e787b2b2..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/056_GenesisSignerCapability.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/057_EasyGasScript.mv b/vm/stdlib/compiled/12/stdlib/057_EasyGasScript.mv deleted file mode 100644 index 260e57f891..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/057_EasyGasScript.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/057_Oracle.mv b/vm/stdlib/compiled/12/stdlib/057_Oracle.mv deleted file mode 100644 index 7e71bf7c21..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/057_Oracle.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/091_TransferScripts.mv b/vm/stdlib/compiled/12/stdlib/057_TransferScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/091_TransferScripts.mv rename to vm/stdlib/compiled/12/stdlib/057_TransferScripts.mv diff --git a/vm/stdlib/compiled/12/stdlib/058_EasyGasScript.mv b/vm/stdlib/compiled/12/stdlib/058_EasyGasScript.mv new file mode 100644 index 0000000000..16d8f1836f Binary files /dev/null and b/vm/stdlib/compiled/12/stdlib/058_EasyGasScript.mv differ diff --git a/vm/stdlib/compiled/12/stdlib/058_Epoch.mv b/vm/stdlib/compiled/12/stdlib/058_Epoch.mv deleted file mode 100644 index 2aa602ac28..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/058_Epoch.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/058_PriceOracle.mv b/vm/stdlib/compiled/12/stdlib/058_PriceOracle.mv deleted file mode 100644 index b8584e7754..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/058_PriceOracle.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/058_Epoch.mv b/vm/stdlib/compiled/12/stdlib/059_Epoch.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/058_Epoch.mv rename to vm/stdlib/compiled/12/stdlib/059_Epoch.mv diff --git a/vm/stdlib/compiled/12/stdlib/059_EventUtil.mv b/vm/stdlib/compiled/12/stdlib/059_EventUtil.mv deleted file mode 100644 index bbbc6f34f8..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/059_EventUtil.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/059_EventUtil.mv b/vm/stdlib/compiled/12/stdlib/060_EventUtil.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/059_EventUtil.mv rename to vm/stdlib/compiled/12/stdlib/060_EventUtil.mv diff --git a/vm/stdlib/compiled/12/stdlib/060_FixedPoint32.mv b/vm/stdlib/compiled/12/stdlib/060_FixedPoint32.mv deleted file mode 100644 index 2ecc1abb82..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/060_FixedPoint32.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/060_FixedPoint32.mv b/vm/stdlib/compiled/12/stdlib/061_FixedPoint32.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/060_FixedPoint32.mv rename to vm/stdlib/compiled/12/stdlib/061_FixedPoint32.mv diff --git a/vm/stdlib/compiled/12/stdlib/061_NFT.mv b/vm/stdlib/compiled/12/stdlib/061_NFT.mv deleted file mode 100644 index 2e48c35167..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/061_NFT.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/061_GasSchedule.mv b/vm/stdlib/compiled/12/stdlib/062_GasSchedule.mv similarity index 76% rename from vm/stdlib/compiled/12/11-12/stdlib/061_GasSchedule.mv rename to vm/stdlib/compiled/12/stdlib/062_GasSchedule.mv index a65c9bae97..a88bc854cb 100644 Binary files a/vm/stdlib/compiled/12/11-12/stdlib/061_GasSchedule.mv and b/vm/stdlib/compiled/12/stdlib/062_GasSchedule.mv differ diff --git a/vm/stdlib/compiled/12/stdlib/062_STCUSDOracle.mv b/vm/stdlib/compiled/12/stdlib/062_STCUSDOracle.mv deleted file mode 100644 index 2a49c59909..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/062_STCUSDOracle.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/063_MerkleProof.mv b/vm/stdlib/compiled/12/stdlib/063_MerkleProof.mv deleted file mode 100644 index 078282555e..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/063_MerkleProof.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/063_Offer.mv b/vm/stdlib/compiled/12/stdlib/063_Offer.mv deleted file mode 100644 index 297fc8eb9b..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/063_Offer.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/062_STCUSDOracle.mv b/vm/stdlib/compiled/12/stdlib/063_STCUSDOracle.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/062_STCUSDOracle.mv rename to vm/stdlib/compiled/12/stdlib/063_STCUSDOracle.mv diff --git a/vm/stdlib/compiled/12/stdlib/064_MerkleNFTDistributor.mv b/vm/stdlib/compiled/12/stdlib/064_MerkleNFTDistributor.mv deleted file mode 100644 index 9b6c88aad4..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/064_MerkleNFTDistributor.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/063_Offer.mv b/vm/stdlib/compiled/12/stdlib/064_Offer.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/063_Offer.mv rename to vm/stdlib/compiled/12/stdlib/064_Offer.mv diff --git a/vm/stdlib/compiled/12/stdlib/065_LanguageVersion.mv b/vm/stdlib/compiled/12/stdlib/065_LanguageVersion.mv deleted file mode 100644 index 0c130d7222..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/065_LanguageVersion.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/064_NFT.mv b/vm/stdlib/compiled/12/stdlib/065_NFT.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/064_NFT.mv rename to vm/stdlib/compiled/12/stdlib/065_NFT.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/065_LanguageVersion.mv b/vm/stdlib/compiled/12/stdlib/066_LanguageVersion.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/065_LanguageVersion.mv rename to vm/stdlib/compiled/12/stdlib/066_LanguageVersion.mv diff --git a/vm/stdlib/compiled/12/stdlib/066_MerkleProof.mv b/vm/stdlib/compiled/12/stdlib/067_MerkleProof.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/066_MerkleProof.mv rename to vm/stdlib/compiled/12/stdlib/067_MerkleProof.mv diff --git a/vm/stdlib/compiled/12/stdlib/067_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/stdlib/067_StdlibUpgradeScripts.mv deleted file mode 100644 index a9bbbad6c8..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/067_StdlibUpgradeScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/068_Genesis.mv b/vm/stdlib/compiled/12/stdlib/068_Genesis.mv deleted file mode 100644 index a993a71d8b..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/068_Genesis.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/068_IdentifierNFT.mv b/vm/stdlib/compiled/12/stdlib/068_IdentifierNFT.mv deleted file mode 100644 index 44d5f27272..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/068_IdentifierNFT.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/067_MerkleNFTDistributor.mv b/vm/stdlib/compiled/12/stdlib/068_MerkleNFTDistributor.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/067_MerkleNFTDistributor.mv rename to vm/stdlib/compiled/12/stdlib/068_MerkleNFTDistributor.mv diff --git a/vm/stdlib/compiled/12/stdlib/069_GenesisNFT.mv b/vm/stdlib/compiled/12/stdlib/069_GenesisNFT.mv deleted file mode 100644 index 803cfbad57..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/069_GenesisNFT.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/068_IdentifierNFT.mv b/vm/stdlib/compiled/12/stdlib/069_IdentifierNFT.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/068_IdentifierNFT.mv rename to vm/stdlib/compiled/12/stdlib/069_IdentifierNFT.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/069_GenesisNFT.mv b/vm/stdlib/compiled/12/stdlib/070_GenesisNFT.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/069_GenesisNFT.mv rename to vm/stdlib/compiled/12/stdlib/070_GenesisNFT.mv diff --git a/vm/stdlib/compiled/12/stdlib/070_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/stdlib/070_StdlibUpgradeScripts.mv deleted file mode 100644 index 6c017b7a1f..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/070_StdlibUpgradeScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/071_Genesis.mv b/vm/stdlib/compiled/12/stdlib/071_Genesis.mv deleted file mode 100644 index 8d67e880e7..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/071_Genesis.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/071_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/stdlib/071_StdlibUpgradeScripts.mv new file mode 100644 index 0000000000..b53e7f3f3f Binary files /dev/null and b/vm/stdlib/compiled/12/stdlib/071_StdlibUpgradeScripts.mv differ diff --git a/vm/stdlib/compiled/12/stdlib/072_Genesis.mv b/vm/stdlib/compiled/12/stdlib/072_Genesis.mv new file mode 100644 index 0000000000..78701566bc Binary files /dev/null and b/vm/stdlib/compiled/12/stdlib/072_Genesis.mv differ diff --git a/vm/stdlib/compiled/12/stdlib/072_GenesisNFTScripts.mv b/vm/stdlib/compiled/12/stdlib/072_GenesisNFTScripts.mv deleted file mode 100644 index fe06059a19..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/072_GenesisNFTScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/072_GenesisNFTScripts.mv b/vm/stdlib/compiled/12/stdlib/073_GenesisNFTScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/072_GenesisNFTScripts.mv rename to vm/stdlib/compiled/12/stdlib/073_GenesisNFTScripts.mv diff --git a/vm/stdlib/compiled/12/stdlib/073_IdentifierNFTScripts.mv b/vm/stdlib/compiled/12/stdlib/073_IdentifierNFTScripts.mv deleted file mode 100644 index f495cd7670..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/073_IdentifierNFTScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/073_NFTGallery.mv b/vm/stdlib/compiled/12/stdlib/073_NFTGallery.mv deleted file mode 100644 index 7b0364a1ab..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/073_NFTGallery.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/073_IdentifierNFTScripts.mv b/vm/stdlib/compiled/12/stdlib/074_IdentifierNFTScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/073_IdentifierNFTScripts.mv rename to vm/stdlib/compiled/12/stdlib/074_IdentifierNFTScripts.mv diff --git a/vm/stdlib/compiled/12/stdlib/074_MintDaoProposal.mv b/vm/stdlib/compiled/12/stdlib/074_MintDaoProposal.mv deleted file mode 100644 index 2f4e07a5c9..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/074_MintDaoProposal.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/074_MintDaoProposal.mv b/vm/stdlib/compiled/12/stdlib/075_MintDaoProposal.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/074_MintDaoProposal.mv rename to vm/stdlib/compiled/12/stdlib/075_MintDaoProposal.mv diff --git a/vm/stdlib/compiled/12/stdlib/075_ModuleUpgradeScripts.mv b/vm/stdlib/compiled/12/stdlib/075_ModuleUpgradeScripts.mv deleted file mode 100644 index f2d215e295..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/075_ModuleUpgradeScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/075_ModuleUpgradeScripts.mv b/vm/stdlib/compiled/12/stdlib/076_ModuleUpgradeScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/075_ModuleUpgradeScripts.mv rename to vm/stdlib/compiled/12/stdlib/076_ModuleUpgradeScripts.mv diff --git a/vm/stdlib/compiled/12/stdlib/076_PriceOracleAggregator.mv b/vm/stdlib/compiled/12/stdlib/076_PriceOracleAggregator.mv deleted file mode 100644 index 2dbc3133f6..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/076_PriceOracleAggregator.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/076_NFTGallery.mv b/vm/stdlib/compiled/12/stdlib/077_NFTGallery.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/076_NFTGallery.mv rename to vm/stdlib/compiled/12/stdlib/077_NFTGallery.mv diff --git a/vm/stdlib/compiled/12/stdlib/077_NFTGalleryScripts.mv b/vm/stdlib/compiled/12/stdlib/077_NFTGalleryScripts.mv deleted file mode 100644 index e9736e40d3..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/077_NFTGalleryScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/077_NFTGalleryScripts.mv b/vm/stdlib/compiled/12/stdlib/078_NFTGalleryScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/077_NFTGalleryScripts.mv rename to vm/stdlib/compiled/12/stdlib/078_NFTGalleryScripts.mv diff --git a/vm/stdlib/compiled/12/stdlib/078_OnChainConfigScripts.mv b/vm/stdlib/compiled/12/stdlib/078_OnChainConfigScripts.mv deleted file mode 100644 index 0f740c0f6d..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/078_OnChainConfigScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/078_Secp256k1.mv b/vm/stdlib/compiled/12/stdlib/078_Secp256k1.mv deleted file mode 100644 index a5eebc7a85..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/078_Secp256k1.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/078_OnChainConfigScripts.mv b/vm/stdlib/compiled/12/stdlib/079_OnChainConfigScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/078_OnChainConfigScripts.mv rename to vm/stdlib/compiled/12/stdlib/079_OnChainConfigScripts.mv diff --git a/vm/stdlib/compiled/12/stdlib/079_PriceOracleAggregator.mv b/vm/stdlib/compiled/12/stdlib/080_PriceOracleAggregator.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/079_PriceOracleAggregator.mv rename to vm/stdlib/compiled/12/stdlib/080_PriceOracleAggregator.mv diff --git a/vm/stdlib/compiled/12/stdlib/080_PriceOracleScripts.mv b/vm/stdlib/compiled/12/stdlib/080_PriceOracleScripts.mv deleted file mode 100644 index 9fc3054e32..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/080_PriceOracleScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/080_PriceOracleScripts.mv b/vm/stdlib/compiled/12/stdlib/081_PriceOracleScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/080_PriceOracleScripts.mv rename to vm/stdlib/compiled/12/stdlib/081_PriceOracleScripts.mv diff --git a/vm/stdlib/compiled/12/stdlib/081_SimpleMap.mv b/vm/stdlib/compiled/12/stdlib/081_SimpleMap.mv deleted file mode 100644 index 5fda8be8e3..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/081_SimpleMap.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/081_Secp256k1.mv b/vm/stdlib/compiled/12/stdlib/082_Secp256k1.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/081_Secp256k1.mv rename to vm/stdlib/compiled/12/stdlib/082_Secp256k1.mv diff --git a/vm/stdlib/compiled/12/stdlib/082_Signature.mv b/vm/stdlib/compiled/12/stdlib/082_Signature.mv deleted file mode 100644 index e37f2baf06..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/082_Signature.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/083_SharedEd25519PublicKey.mv b/vm/stdlib/compiled/12/stdlib/083_SharedEd25519PublicKey.mv deleted file mode 100644 index aa92ddbcab..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/083_SharedEd25519PublicKey.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/082_Signature.mv b/vm/stdlib/compiled/12/stdlib/083_Signature.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/082_Signature.mv rename to vm/stdlib/compiled/12/stdlib/083_Signature.mv diff --git a/vm/stdlib/compiled/12/stdlib/083_StarcoinVerifier.mv b/vm/stdlib/compiled/12/stdlib/083_StarcoinVerifier.mv deleted file mode 100644 index 1f79c3cc85..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/083_StarcoinVerifier.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/083_SharedEd25519PublicKey.mv b/vm/stdlib/compiled/12/stdlib/084_SharedEd25519PublicKey.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/083_SharedEd25519PublicKey.mv rename to vm/stdlib/compiled/12/stdlib/084_SharedEd25519PublicKey.mv diff --git a/vm/stdlib/compiled/12/stdlib/084_String.mv b/vm/stdlib/compiled/12/stdlib/084_String.mv deleted file mode 100644 index a718cd408f..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/084_String.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/084_SimpleMap.mv b/vm/stdlib/compiled/12/stdlib/085_SimpleMap.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/084_SimpleMap.mv rename to vm/stdlib/compiled/12/stdlib/085_SimpleMap.mv diff --git a/vm/stdlib/compiled/12/stdlib/085_StructuredHash.mv b/vm/stdlib/compiled/12/stdlib/085_StructuredHash.mv deleted file mode 100644 index 41c8858866..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/085_StructuredHash.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/085_StructuredHash.mv b/vm/stdlib/compiled/12/stdlib/086_StructuredHash.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/085_StructuredHash.mv rename to vm/stdlib/compiled/12/stdlib/086_StructuredHash.mv diff --git a/vm/stdlib/compiled/12/stdlib/086_StarcoinVerifier.mv b/vm/stdlib/compiled/12/stdlib/087_StarcoinVerifier.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/086_StarcoinVerifier.mv rename to vm/stdlib/compiled/12/stdlib/087_StarcoinVerifier.mv diff --git a/vm/stdlib/compiled/12/stdlib/087_TransactionManager.mv b/vm/stdlib/compiled/12/stdlib/087_TransactionManager.mv deleted file mode 100644 index 6f1c313bfa..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/087_TransactionManager.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/087_String.mv b/vm/stdlib/compiled/12/stdlib/088_String.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/087_String.mv rename to vm/stdlib/compiled/12/stdlib/088_String.mv diff --git a/vm/stdlib/compiled/12/stdlib/088_Table.mv b/vm/stdlib/compiled/12/stdlib/088_Table.mv deleted file mode 100644 index 297bb011c4..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/088_Table.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/088_TransferScripts.mv b/vm/stdlib/compiled/12/stdlib/088_TransferScripts.mv deleted file mode 100644 index dca83ebaca..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/088_TransferScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/088_Table.mv b/vm/stdlib/compiled/12/stdlib/089_Table.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/088_Table.mv rename to vm/stdlib/compiled/12/stdlib/089_Table.mv diff --git a/vm/stdlib/compiled/12/stdlib/089_TransactionTimeout.mv b/vm/stdlib/compiled/12/stdlib/089_TransactionTimeout.mv deleted file mode 100644 index 0e53dcbf46..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/089_TransactionTimeout.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/089_TreasuryScripts.mv b/vm/stdlib/compiled/12/stdlib/089_TreasuryScripts.mv deleted file mode 100644 index 23b7501a57..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/089_TreasuryScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/11-12/stdlib/089_TransactionTimeout.mv b/vm/stdlib/compiled/12/stdlib/090_TransactionTimeout.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/089_TransactionTimeout.mv rename to vm/stdlib/compiled/12/stdlib/090_TransactionTimeout.mv diff --git a/vm/stdlib/compiled/12/stdlib/090_TypeInfo.mv b/vm/stdlib/compiled/12/stdlib/090_TypeInfo.mv deleted file mode 100644 index 3b23e889b2..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/090_TypeInfo.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/090_TransactionManager.mv b/vm/stdlib/compiled/12/stdlib/091_TransactionManager.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/090_TransactionManager.mv rename to vm/stdlib/compiled/12/stdlib/091_TransactionManager.mv diff --git a/vm/stdlib/compiled/12/stdlib/091_U256.mv b/vm/stdlib/compiled/12/stdlib/091_U256.mv deleted file mode 100644 index e923809b5f..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/091_U256.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/092_YieldFarming.mv b/vm/stdlib/compiled/12/stdlib/092_YieldFarming.mv deleted file mode 100644 index 5095009085..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/092_YieldFarming.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/093_YieldFarmingV2.mv b/vm/stdlib/compiled/12/stdlib/093_YieldFarmingV2.mv deleted file mode 100644 index e0e4f01ae5..0000000000 Binary files a/vm/stdlib/compiled/12/stdlib/093_YieldFarmingV2.mv and /dev/null differ diff --git a/vm/stdlib/compiled/latest/stdlib/037_Account.mv b/vm/stdlib/compiled/latest/stdlib/037_Account.mv index a3e77c2955..1a3465588c 100644 Binary files a/vm/stdlib/compiled/latest/stdlib/037_Account.mv and b/vm/stdlib/compiled/latest/stdlib/037_Account.mv differ diff --git a/vm/stdlib/compiled/latest/stdlib/057_EasyGasScript.mv b/vm/stdlib/compiled/latest/stdlib/057_EasyGasScript.mv deleted file mode 100644 index 260e57f891..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/057_EasyGasScript.mv and /dev/null differ diff --git a/vm/stdlib/compiled/latest/stdlib/091_TransferScripts.mv b/vm/stdlib/compiled/latest/stdlib/057_TransferScripts.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/091_TransferScripts.mv rename to vm/stdlib/compiled/latest/stdlib/057_TransferScripts.mv diff --git a/vm/stdlib/compiled/latest/stdlib/058_EasyGasScript.mv b/vm/stdlib/compiled/latest/stdlib/058_EasyGasScript.mv new file mode 100644 index 0000000000..16d8f1836f Binary files /dev/null and b/vm/stdlib/compiled/latest/stdlib/058_EasyGasScript.mv differ diff --git a/vm/stdlib/compiled/latest/stdlib/058_Epoch.mv b/vm/stdlib/compiled/latest/stdlib/058_Epoch.mv deleted file mode 100644 index 2aa602ac28..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/058_Epoch.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/052_Epoch.mv b/vm/stdlib/compiled/latest/stdlib/059_Epoch.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/052_Epoch.mv rename to vm/stdlib/compiled/latest/stdlib/059_Epoch.mv diff --git a/vm/stdlib/compiled/latest/stdlib/059_EventUtil.mv b/vm/stdlib/compiled/latest/stdlib/059_EventUtil.mv deleted file mode 100644 index bbbc6f34f8..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/059_EventUtil.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/053_EventUtil.mv b/vm/stdlib/compiled/latest/stdlib/060_EventUtil.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/053_EventUtil.mv rename to vm/stdlib/compiled/latest/stdlib/060_EventUtil.mv diff --git a/vm/stdlib/compiled/latest/stdlib/060_FixedPoint32.mv b/vm/stdlib/compiled/latest/stdlib/060_FixedPoint32.mv deleted file mode 100644 index 2ecc1abb82..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/060_FixedPoint32.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/054_FixedPoint32.mv b/vm/stdlib/compiled/latest/stdlib/061_FixedPoint32.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/054_FixedPoint32.mv rename to vm/stdlib/compiled/latest/stdlib/061_FixedPoint32.mv diff --git a/vm/stdlib/compiled/12/stdlib/061_GasSchedule.mv b/vm/stdlib/compiled/latest/stdlib/062_GasSchedule.mv similarity index 76% rename from vm/stdlib/compiled/12/stdlib/061_GasSchedule.mv rename to vm/stdlib/compiled/latest/stdlib/062_GasSchedule.mv index a65c9bae97..a88bc854cb 100644 Binary files a/vm/stdlib/compiled/12/stdlib/061_GasSchedule.mv and b/vm/stdlib/compiled/latest/stdlib/062_GasSchedule.mv differ diff --git a/vm/stdlib/compiled/latest/stdlib/062_STCUSDOracle.mv b/vm/stdlib/compiled/latest/stdlib/062_STCUSDOracle.mv deleted file mode 100644 index 2a49c59909..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/062_STCUSDOracle.mv and /dev/null differ diff --git a/vm/stdlib/compiled/latest/stdlib/063_Offer.mv b/vm/stdlib/compiled/latest/stdlib/063_Offer.mv deleted file mode 100644 index 297fc8eb9b..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/063_Offer.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/059_STCUSDOracle.mv b/vm/stdlib/compiled/latest/stdlib/063_STCUSDOracle.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/059_STCUSDOracle.mv rename to vm/stdlib/compiled/latest/stdlib/063_STCUSDOracle.mv diff --git a/vm/stdlib/compiled/12/stdlib/060_Offer.mv b/vm/stdlib/compiled/latest/stdlib/064_Offer.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/060_Offer.mv rename to vm/stdlib/compiled/latest/stdlib/064_Offer.mv diff --git a/vm/stdlib/compiled/latest/stdlib/065_LanguageVersion.mv b/vm/stdlib/compiled/latest/stdlib/065_LanguageVersion.mv deleted file mode 100644 index 0c130d7222..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/065_LanguageVersion.mv and /dev/null differ diff --git a/vm/stdlib/compiled/latest/stdlib/064_NFT.mv b/vm/stdlib/compiled/latest/stdlib/065_NFT.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/064_NFT.mv rename to vm/stdlib/compiled/latest/stdlib/065_NFT.mv diff --git a/vm/stdlib/compiled/12/stdlib/062_LanguageVersion.mv b/vm/stdlib/compiled/latest/stdlib/066_LanguageVersion.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/062_LanguageVersion.mv rename to vm/stdlib/compiled/latest/stdlib/066_LanguageVersion.mv diff --git a/vm/stdlib/compiled/latest/stdlib/066_MerkleProof.mv b/vm/stdlib/compiled/latest/stdlib/067_MerkleProof.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/066_MerkleProof.mv rename to vm/stdlib/compiled/latest/stdlib/067_MerkleProof.mv diff --git a/vm/stdlib/compiled/latest/stdlib/068_IdentifierNFT.mv b/vm/stdlib/compiled/latest/stdlib/068_IdentifierNFT.mv deleted file mode 100644 index 44d5f27272..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/068_IdentifierNFT.mv and /dev/null differ diff --git a/vm/stdlib/compiled/latest/stdlib/067_MerkleNFTDistributor.mv b/vm/stdlib/compiled/latest/stdlib/068_MerkleNFTDistributor.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/067_MerkleNFTDistributor.mv rename to vm/stdlib/compiled/latest/stdlib/068_MerkleNFTDistributor.mv diff --git a/vm/stdlib/compiled/latest/stdlib/069_GenesisNFT.mv b/vm/stdlib/compiled/latest/stdlib/069_GenesisNFT.mv deleted file mode 100644 index 803cfbad57..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/069_GenesisNFT.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/065_IdentifierNFT.mv b/vm/stdlib/compiled/latest/stdlib/069_IdentifierNFT.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/065_IdentifierNFT.mv rename to vm/stdlib/compiled/latest/stdlib/069_IdentifierNFT.mv diff --git a/vm/stdlib/compiled/12/stdlib/066_GenesisNFT.mv b/vm/stdlib/compiled/latest/stdlib/070_GenesisNFT.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/066_GenesisNFT.mv rename to vm/stdlib/compiled/latest/stdlib/070_GenesisNFT.mv diff --git a/vm/stdlib/compiled/latest/stdlib/070_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/latest/stdlib/070_StdlibUpgradeScripts.mv deleted file mode 100644 index 6c017b7a1f..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/070_StdlibUpgradeScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/latest/stdlib/071_Genesis.mv b/vm/stdlib/compiled/latest/stdlib/071_Genesis.mv deleted file mode 100644 index 8d67e880e7..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/071_Genesis.mv and /dev/null differ diff --git a/vm/stdlib/compiled/latest/stdlib/071_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/latest/stdlib/071_StdlibUpgradeScripts.mv new file mode 100644 index 0000000000..b53e7f3f3f Binary files /dev/null and b/vm/stdlib/compiled/latest/stdlib/071_StdlibUpgradeScripts.mv differ diff --git a/vm/stdlib/compiled/latest/stdlib/072_Genesis.mv b/vm/stdlib/compiled/latest/stdlib/072_Genesis.mv new file mode 100644 index 0000000000..78701566bc Binary files /dev/null and b/vm/stdlib/compiled/latest/stdlib/072_Genesis.mv differ diff --git a/vm/stdlib/compiled/latest/stdlib/072_GenesisNFTScripts.mv b/vm/stdlib/compiled/latest/stdlib/072_GenesisNFTScripts.mv deleted file mode 100644 index fe06059a19..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/072_GenesisNFTScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/069_GenesisNFTScripts.mv b/vm/stdlib/compiled/latest/stdlib/073_GenesisNFTScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/069_GenesisNFTScripts.mv rename to vm/stdlib/compiled/latest/stdlib/073_GenesisNFTScripts.mv diff --git a/vm/stdlib/compiled/latest/stdlib/073_IdentifierNFTScripts.mv b/vm/stdlib/compiled/latest/stdlib/073_IdentifierNFTScripts.mv deleted file mode 100644 index f495cd7670..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/073_IdentifierNFTScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/070_IdentifierNFTScripts.mv b/vm/stdlib/compiled/latest/stdlib/074_IdentifierNFTScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/070_IdentifierNFTScripts.mv rename to vm/stdlib/compiled/latest/stdlib/074_IdentifierNFTScripts.mv diff --git a/vm/stdlib/compiled/latest/stdlib/074_MintDaoProposal.mv b/vm/stdlib/compiled/latest/stdlib/074_MintDaoProposal.mv deleted file mode 100644 index 2f4e07a5c9..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/074_MintDaoProposal.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/071_MintDaoProposal.mv b/vm/stdlib/compiled/latest/stdlib/075_MintDaoProposal.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/071_MintDaoProposal.mv rename to vm/stdlib/compiled/latest/stdlib/075_MintDaoProposal.mv diff --git a/vm/stdlib/compiled/latest/stdlib/075_ModuleUpgradeScripts.mv b/vm/stdlib/compiled/latest/stdlib/075_ModuleUpgradeScripts.mv deleted file mode 100644 index f2d215e295..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/075_ModuleUpgradeScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/072_ModuleUpgradeScripts.mv b/vm/stdlib/compiled/latest/stdlib/076_ModuleUpgradeScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/072_ModuleUpgradeScripts.mv rename to vm/stdlib/compiled/latest/stdlib/076_ModuleUpgradeScripts.mv diff --git a/vm/stdlib/compiled/latest/stdlib/076_NFTGallery.mv b/vm/stdlib/compiled/latest/stdlib/077_NFTGallery.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/076_NFTGallery.mv rename to vm/stdlib/compiled/latest/stdlib/077_NFTGallery.mv diff --git a/vm/stdlib/compiled/latest/stdlib/077_NFTGalleryScripts.mv b/vm/stdlib/compiled/latest/stdlib/077_NFTGalleryScripts.mv deleted file mode 100644 index e9736e40d3..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/077_NFTGalleryScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/074_NFTGalleryScripts.mv b/vm/stdlib/compiled/latest/stdlib/078_NFTGalleryScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/074_NFTGalleryScripts.mv rename to vm/stdlib/compiled/latest/stdlib/078_NFTGalleryScripts.mv diff --git a/vm/stdlib/compiled/latest/stdlib/078_OnChainConfigScripts.mv b/vm/stdlib/compiled/latest/stdlib/078_OnChainConfigScripts.mv deleted file mode 100644 index 0f740c0f6d..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/078_OnChainConfigScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/075_OnChainConfigScripts.mv b/vm/stdlib/compiled/latest/stdlib/079_OnChainConfigScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/075_OnChainConfigScripts.mv rename to vm/stdlib/compiled/latest/stdlib/079_OnChainConfigScripts.mv diff --git a/vm/stdlib/compiled/latest/stdlib/079_PriceOracleAggregator.mv b/vm/stdlib/compiled/latest/stdlib/080_PriceOracleAggregator.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/079_PriceOracleAggregator.mv rename to vm/stdlib/compiled/latest/stdlib/080_PriceOracleAggregator.mv diff --git a/vm/stdlib/compiled/latest/stdlib/080_PriceOracleScripts.mv b/vm/stdlib/compiled/latest/stdlib/080_PriceOracleScripts.mv deleted file mode 100644 index 9fc3054e32..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/080_PriceOracleScripts.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/077_PriceOracleScripts.mv b/vm/stdlib/compiled/latest/stdlib/081_PriceOracleScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/077_PriceOracleScripts.mv rename to vm/stdlib/compiled/latest/stdlib/081_PriceOracleScripts.mv diff --git a/vm/stdlib/compiled/latest/stdlib/081_Secp256k1.mv b/vm/stdlib/compiled/latest/stdlib/082_Secp256k1.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/081_Secp256k1.mv rename to vm/stdlib/compiled/latest/stdlib/082_Secp256k1.mv diff --git a/vm/stdlib/compiled/latest/stdlib/082_Signature.mv b/vm/stdlib/compiled/latest/stdlib/082_Signature.mv deleted file mode 100644 index e37f2baf06..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/082_Signature.mv and /dev/null differ diff --git a/vm/stdlib/compiled/latest/stdlib/083_SharedEd25519PublicKey.mv b/vm/stdlib/compiled/latest/stdlib/083_SharedEd25519PublicKey.mv deleted file mode 100644 index aa92ddbcab..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/083_SharedEd25519PublicKey.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/079_Signature.mv b/vm/stdlib/compiled/latest/stdlib/083_Signature.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/079_Signature.mv rename to vm/stdlib/compiled/latest/stdlib/083_Signature.mv diff --git a/vm/stdlib/compiled/12/stdlib/080_SharedEd25519PublicKey.mv b/vm/stdlib/compiled/latest/stdlib/084_SharedEd25519PublicKey.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/080_SharedEd25519PublicKey.mv rename to vm/stdlib/compiled/latest/stdlib/084_SharedEd25519PublicKey.mv diff --git a/vm/stdlib/compiled/latest/stdlib/084_SimpleMap.mv b/vm/stdlib/compiled/latest/stdlib/085_SimpleMap.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/084_SimpleMap.mv rename to vm/stdlib/compiled/latest/stdlib/085_SimpleMap.mv diff --git a/vm/stdlib/compiled/latest/stdlib/085_StructuredHash.mv b/vm/stdlib/compiled/latest/stdlib/085_StructuredHash.mv deleted file mode 100644 index 41c8858866..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/085_StructuredHash.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/082_StructuredHash.mv b/vm/stdlib/compiled/latest/stdlib/086_StructuredHash.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/082_StructuredHash.mv rename to vm/stdlib/compiled/latest/stdlib/086_StructuredHash.mv diff --git a/vm/stdlib/compiled/latest/stdlib/086_StarcoinVerifier.mv b/vm/stdlib/compiled/latest/stdlib/087_StarcoinVerifier.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/086_StarcoinVerifier.mv rename to vm/stdlib/compiled/latest/stdlib/087_StarcoinVerifier.mv diff --git a/vm/stdlib/compiled/latest/stdlib/087_String.mv b/vm/stdlib/compiled/latest/stdlib/088_String.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/087_String.mv rename to vm/stdlib/compiled/latest/stdlib/088_String.mv diff --git a/vm/stdlib/compiled/latest/stdlib/088_Table.mv b/vm/stdlib/compiled/latest/stdlib/088_Table.mv deleted file mode 100644 index 297bb011c4..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/088_Table.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/085_Table.mv b/vm/stdlib/compiled/latest/stdlib/089_Table.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/085_Table.mv rename to vm/stdlib/compiled/latest/stdlib/089_Table.mv diff --git a/vm/stdlib/compiled/latest/stdlib/089_TransactionTimeout.mv b/vm/stdlib/compiled/latest/stdlib/089_TransactionTimeout.mv deleted file mode 100644 index 0e53dcbf46..0000000000 Binary files a/vm/stdlib/compiled/latest/stdlib/089_TransactionTimeout.mv and /dev/null differ diff --git a/vm/stdlib/compiled/12/stdlib/086_TransactionTimeout.mv b/vm/stdlib/compiled/latest/stdlib/090_TransactionTimeout.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/086_TransactionTimeout.mv rename to vm/stdlib/compiled/latest/stdlib/090_TransactionTimeout.mv diff --git a/vm/stdlib/compiled/latest/stdlib/090_TransactionManager.mv b/vm/stdlib/compiled/latest/stdlib/091_TransactionManager.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/090_TransactionManager.mv rename to vm/stdlib/compiled/latest/stdlib/091_TransactionManager.mv diff --git a/vm/stdlib/tests/package_init_script.rs b/vm/stdlib/tests/package_init_script.rs new file mode 100644 index 0000000000..3021071ca3 --- /dev/null +++ b/vm/stdlib/tests/package_init_script.rs @@ -0,0 +1,57 @@ +use anyhow::{format_err, Result}; +use starcoin_vm_types::transaction::Package; +use stdlib::COMPILED_MOVE_CODE_DIR; + +#[test] +fn test_package_init_function() -> Result<()> { + let _path_list = [ + "./compiled/2/1-2/stdlib.blob", + "./compiled/3/2-3/stdlib.blob", + "./compiled/4/3-4/stdlib.blob", + "./compiled/5/4-5/stdlib.blob", + "./compiled/6/5-6/stdlib.blob", + "./compiled/7/6-7/stdlib.blob", + "./compiled/8/7-8/stdlib.blob", + "./compiled/9/8-9/stdlib.blob", + "./compiled/10/9-10/stdlib.blob", + "./compiled/11/10-11/stdlib.blob", + "./compiled/12/11-12/stdlib.blob", + ]; + + let init_strs = [ + "0x00000000000000000000000000000001::PackageTxnManager::convert_TwoPhaseUpgrade_to_TwoPhaseUpgradeV2", + "0x00000000000000000000000000000001::StdlibUpgradeScripts::upgrade_from_v2_to_v3", + "", + "", + "0x00000000000000000000000000000001::StdlibUpgradeScripts::upgrade_from_v5_to_v6", + "0x00000000000000000000000000000001::StdlibUpgradeScripts::upgrade_from_v6_to_v7", + "0x00000000000000000000000000000001::StdlibUpgradeScripts::upgrade_from_v7_to_v8", + "", + "", + "", + "0x00000000000000000000000000000001::StdlibUpgradeScripts::upgrade_from_v11_to_v12", + ]; + for (i, version) in (2..=12).collect::>().into_iter().enumerate() { + let package_file = format!("{}/{}-{}/stdlib.blob", version, version - 1, version); + let package = COMPILED_MOVE_CODE_DIR + .get_file(package_file) + .map(|file| { + bcs_ext::from_bytes::(file.contents()) + .expect("Decode package should success") + }) + .ok_or_else(|| { + format_err!( + "Can not find upgrade package between version {} and {}", + version - 1, + version + ) + })?; + let init_fun = if let Some(init_script) = package.init_script() { + format!("{}::{}", init_script.module(), init_script.function()) + } else { + "".to_owned() + }; + assert_eq!(init_fun, init_strs[i]); + } + Ok(()) +} diff --git a/vm/transaction-builder/src/lib.rs b/vm/transaction-builder/src/lib.rs index e911bf5204..0019c4512b 100644 --- a/vm/transaction-builder/src/lib.rs +++ b/vm/transaction-builder/src/lib.rs @@ -15,7 +15,7 @@ use starcoin_vm_types::genesis_config::ChainId; use starcoin_vm_types::identifier::Identifier; use starcoin_vm_types::language_storage::ModuleId; use starcoin_vm_types::language_storage::{StructTag, TypeTag}; -use starcoin_vm_types::on_chain_config::{GasSchedule, VMConfig}; +use starcoin_vm_types::on_chain_config::VMConfig; use starcoin_vm_types::on_chain_resource::nft::NFTUUID; use starcoin_vm_types::token::stc::{stc_type_tag, G_STC_TOKEN_CODE}; use starcoin_vm_types::token::token_code::TokenCode; @@ -350,10 +350,7 @@ pub fn create_signed_txn_with_association_account( pub fn build_stdlib_package(net: &ChainNetwork, stdlib_option: StdLibOptions) -> Result { let init_script = match net.genesis_config().stdlib_version { StdlibVersion::Version(1) => build_init_script_v1(net), - StdlibVersion::Version(12) | StdlibVersion::Latest => { - build_init_script_with_function(net, "initialize_v3") - } - _ => build_init_script_with_function(net, "initialize_v2"), + _ => build_init_script_v2(net), }; stdlib_package(stdlib_option, Some(init_script)) } @@ -364,10 +361,7 @@ pub fn build_stdlib_package_with_modules( ) -> Result { let init_script = match net.genesis_config().stdlib_version { StdlibVersion::Version(1) => build_init_script_v1(net), - StdlibVersion::Version(12) | StdlibVersion::Latest => { - build_init_script_with_function(net, "initialize_v3") - } - _ => build_init_script_with_function(net, "initialize_v2"), + _ => build_init_script_v2(net), }; module_to_package(modules, Some(init_script)) } @@ -535,7 +529,7 @@ pub fn build_init_script_v1(net: &ChainNetwork) -> ScriptFunction { ) } -pub fn build_init_script_with_function(net: &ChainNetwork, function: &str) -> ScriptFunction { +pub fn build_init_script_v2(net: &ChainNetwork) -> ScriptFunction { let genesis_config = net.genesis_config(); let chain_id = net.chain_id().id(); let genesis_timestamp = net.genesis_block_parameter().timestamp; @@ -556,154 +550,147 @@ pub fn build_init_script_with_function(net: &ChainNetwork, function: &str) -> Sc let native_schedule = bcs_ext::to_bytes(&genesis_config.vm_config.gas_schedule.native_table) .expect("Cannot serialize gas schedule"); - let mut args = vec![ - bcs_ext::to_bytes(&net.genesis_config().stdlib_version.version()).unwrap(), - bcs_ext::to_bytes(&genesis_config.reward_delay).unwrap(), - bcs_ext::to_bytes(&G_TOTAL_STC_AMOUNT.scaling()).unwrap(), - bcs_ext::to_bytes(&genesis_config.pre_mine_amount).unwrap(), - bcs_ext::to_bytes(&genesis_config.time_mint_amount).unwrap(), - bcs_ext::to_bytes(&genesis_config.time_mint_period).unwrap(), - bcs_ext::to_bytes(&genesis_parent_hash.to_vec()).unwrap(), - bcs_ext::to_bytes(&association_auth_key).unwrap(), - bcs_ext::to_bytes(&genesis_auth_key).unwrap(), - bcs_ext::to_bytes(&chain_id).unwrap(), - bcs_ext::to_bytes(&genesis_timestamp).unwrap(), - //consensus config - bcs_ext::to_bytes(&genesis_config.consensus_config.uncle_rate_target).unwrap(), - bcs_ext::to_bytes(&genesis_config.consensus_config.epoch_block_count).unwrap(), - bcs_ext::to_bytes(&genesis_config.consensus_config.base_block_time_target).unwrap(), - bcs_ext::to_bytes(&genesis_config.consensus_config.base_block_difficulty_window).unwrap(), - bcs_ext::to_bytes(&genesis_config.consensus_config.base_reward_per_block).unwrap(), - bcs_ext::to_bytes( - &genesis_config - .consensus_config - .base_reward_per_uncle_percent, - ) - .unwrap(), - bcs_ext::to_bytes(&genesis_config.consensus_config.min_block_time_target).unwrap(), - bcs_ext::to_bytes(&genesis_config.consensus_config.max_block_time_target).unwrap(), - bcs_ext::to_bytes(&genesis_config.consensus_config.base_max_uncles_per_block).unwrap(), - bcs_ext::to_bytes(&genesis_config.consensus_config.base_block_gas_limit).unwrap(), - bcs_ext::to_bytes(&genesis_config.consensus_config.strategy).unwrap(), - //vm config - bcs_ext::to_bytes(&genesis_config.publishing_option.is_script_allowed()).unwrap(), - bcs_ext::to_bytes( - &genesis_config - .publishing_option - .is_module_publishing_allowed(), - ) - .unwrap(), - bcs_ext::to_bytes(&instruction_schedule).unwrap(), - bcs_ext::to_bytes(&native_schedule).unwrap(), - //gas constants - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .global_memory_per_byte_cost, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .global_memory_per_byte_write_cost, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .min_transaction_gas_units, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .large_transaction_cutoff, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .intrinsic_gas_per_byte, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .maximum_number_of_gas_units, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .min_price_per_gas_unit, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .max_price_per_gas_unit, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .max_transaction_size_in_bytes, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .gas_unit_scaling_factor, - ) - .unwrap(), - bcs_ext::to_bytes( - &genesis_config - .vm_config - .gas_schedule - .gas_constants - .default_account_size, - ) - .unwrap(), - // dao config params - bcs_ext::to_bytes(&genesis_config.dao_config.voting_delay).unwrap(), - bcs_ext::to_bytes(&genesis_config.dao_config.voting_period).unwrap(), - bcs_ext::to_bytes(&genesis_config.dao_config.voting_quorum_rate).unwrap(), - bcs_ext::to_bytes(&genesis_config.dao_config.min_action_delay).unwrap(), - //transaction timeout config - bcs_ext::to_bytes(&genesis_config.transaction_timeout).unwrap(), - ]; - - if function == "initialize_v3" { - args.push( - bcs_ext::to_bytes(&GasSchedule::from(&genesis_config.vm_config.gas_schedule)).unwrap(), - ); - } - ScriptFunction::new( ModuleId::new(core_code_address(), Identifier::new("Genesis").unwrap()), - Identifier::new(function).unwrap(), + Identifier::new("initialize_v2").unwrap(), vec![], - args, + vec![ + bcs_ext::to_bytes(&net.genesis_config().stdlib_version.version()).unwrap(), + bcs_ext::to_bytes(&genesis_config.reward_delay).unwrap(), + bcs_ext::to_bytes(&G_TOTAL_STC_AMOUNT.scaling()).unwrap(), + bcs_ext::to_bytes(&genesis_config.pre_mine_amount).unwrap(), + bcs_ext::to_bytes(&genesis_config.time_mint_amount).unwrap(), + bcs_ext::to_bytes(&genesis_config.time_mint_period).unwrap(), + bcs_ext::to_bytes(&genesis_parent_hash.to_vec()).unwrap(), + bcs_ext::to_bytes(&association_auth_key).unwrap(), + bcs_ext::to_bytes(&genesis_auth_key).unwrap(), + bcs_ext::to_bytes(&chain_id).unwrap(), + bcs_ext::to_bytes(&genesis_timestamp).unwrap(), + //consensus config + bcs_ext::to_bytes(&genesis_config.consensus_config.uncle_rate_target).unwrap(), + bcs_ext::to_bytes(&genesis_config.consensus_config.epoch_block_count).unwrap(), + bcs_ext::to_bytes(&genesis_config.consensus_config.base_block_time_target).unwrap(), + bcs_ext::to_bytes(&genesis_config.consensus_config.base_block_difficulty_window) + .unwrap(), + bcs_ext::to_bytes(&genesis_config.consensus_config.base_reward_per_block).unwrap(), + bcs_ext::to_bytes( + &genesis_config + .consensus_config + .base_reward_per_uncle_percent, + ) + .unwrap(), + bcs_ext::to_bytes(&genesis_config.consensus_config.min_block_time_target).unwrap(), + bcs_ext::to_bytes(&genesis_config.consensus_config.max_block_time_target).unwrap(), + bcs_ext::to_bytes(&genesis_config.consensus_config.base_max_uncles_per_block).unwrap(), + bcs_ext::to_bytes(&genesis_config.consensus_config.base_block_gas_limit).unwrap(), + bcs_ext::to_bytes(&genesis_config.consensus_config.strategy).unwrap(), + //vm config + bcs_ext::to_bytes(&genesis_config.publishing_option.is_script_allowed()).unwrap(), + bcs_ext::to_bytes( + &genesis_config + .publishing_option + .is_module_publishing_allowed(), + ) + .unwrap(), + bcs_ext::to_bytes(&instruction_schedule).unwrap(), + bcs_ext::to_bytes(&native_schedule).unwrap(), + //gas constants + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .global_memory_per_byte_cost, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .global_memory_per_byte_write_cost, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .min_transaction_gas_units, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .large_transaction_cutoff, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .intrinsic_gas_per_byte, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .maximum_number_of_gas_units, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .min_price_per_gas_unit, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .max_price_per_gas_unit, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .max_transaction_size_in_bytes, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .gas_unit_scaling_factor, + ) + .unwrap(), + bcs_ext::to_bytes( + &genesis_config + .vm_config + .gas_schedule + .gas_constants + .default_account_size, + ) + .unwrap(), + // dao config params + bcs_ext::to_bytes(&genesis_config.dao_config.voting_delay).unwrap(), + bcs_ext::to_bytes(&genesis_config.dao_config.voting_period).unwrap(), + bcs_ext::to_bytes(&genesis_config.dao_config.voting_quorum_rate).unwrap(), + bcs_ext::to_bytes(&genesis_config.dao_config.min_action_delay).unwrap(), + //transaction timeout config + bcs_ext::to_bytes(&genesis_config.transaction_timeout).unwrap(), + ], ) } diff --git a/vm/vm-runtime/src/starcoin_vm.rs b/vm/vm-runtime/src/starcoin_vm.rs index 37a54ddf30..c9402e5f51 100644 --- a/vm/vm-runtime/src/starcoin_vm.rs +++ b/vm/vm-runtime/src/starcoin_vm.rs @@ -50,9 +50,8 @@ use starcoin_vm_types::genesis_config::StdlibVersion; use starcoin_vm_types::identifier::IdentStr; use starcoin_vm_types::language_storage::ModuleId; use starcoin_vm_types::on_chain_config::{ - GasSchedule, MoveLanguageVersion, G_GAS_CONSTANTS_IDENTIFIER, G_GAS_SCHEDULE_GAS_SCHEDULE, - G_GAS_SCHEDULE_IDENTIFIER, G_INSTRUCTION_SCHEDULE_IDENTIFIER, G_NATIVE_SCHEDULE_IDENTIFIER, - G_VM_CONFIG_IDENTIFIER, + GasSchedule, MoveLanguageVersion, G_GAS_CONSTANTS_IDENTIFIER, + G_INSTRUCTION_SCHEDULE_IDENTIFIER, G_NATIVE_SCHEDULE_IDENTIFIER, G_VM_CONFIG_IDENTIFIER, }; use starcoin_vm_types::state_store::state_key::StateKey; use starcoin_vm_types::state_view::StateReaderExt; @@ -269,26 +268,8 @@ impl StarcoinVM { "stdlib version: {}, fetch schedule from onchain module GasSchedule", stdlib_version ); - let gas_schedule = { - let data = self - .execute_readonly_function_internal( - state, - &ModuleId::new( - core_code_address(), - G_GAS_SCHEDULE_IDENTIFIER.to_owned(), - ), - G_GAS_SCHEDULE_GAS_SCHEDULE.as_ident_str(), - vec![], - vec![], - false, - )? - .pop() - .ok_or_else(|| { - anyhow::anyhow!("Expect 0x1::GasSchedule::gas_schedule() return value") - })?; - bcs_ext::from_bytes::(&data)? - }; - (Some(gas_schedule), "gas schedule from GasSchedule") + let gas_schedule = GasSchedule::fetch_config(&remote_storage)?; + (gas_schedule, "gas schedule from GasSchedule") }; #[cfg(feature = "print_gas_info")] match self.gas_schedule.as_ref() {