From 654d6d99e448b2e9b778d7b5bfdb9e8bd3a3177c Mon Sep 17 00:00:00 2001 From: Bob Ong Date: Wed, 17 Apr 2024 13:56:55 +0800 Subject: [PATCH] Force deploy (#4025) * [force-deploy] add initial codes force deploy command into db exporter * add the project of force upgrade * [force deploy] Add suiteable binary files of starcoin framework * [force-deploy] revert gas schedule * [force-upgrade] reformat upgrade code * [force-deploy] reformat some code for unittest * [force-deploy] A new txn verify and modification scheme is used, based on modifications of the starcoin-runtime layer * [force-deploy] modify code * [force-deploy] upgrade framework mv file for barnard and proxima * fixed for test * for account get from multi chain id * fixed error * [force-upgrade] move the code into openedblock * [force-deploy] add include_dir and fixed the genesis version of proxima and halley * [force-upgrade] change to new process * [force-upgrade] change to new process * binary file * [force-upgrade] change to new process * [force-upgrade] add block timestamp * [force-upgrade] remove unused code * [force-upgrade] fixed upgrade test error * [force-upgrade] fixed the timestamp * [force-upgrade] fixed the timestamp * [force-upgrade] fixed the script for include_dir * [force-upgrade] fixed timestamp * [force-upgrade] reverted gas scheduler * [force-upgrade] reverted gas scheduler * [force-upgrade] merged from commit "224ee92b878f8a8f4e1628bcd2464f7df934eab2" * [force-upgrade] change inappropriate file name * [force-upgrade] fixed executed for add result to accumulator * [force-deploy] add some case * [force-upgrade] change for test * [force-upgrade] Change unittest for verify block template * [force-upgrade] remove check function * fix compiling errors and warnings * fix unused code * Revert "[force-upgrade] fixed executed for add result to accumulator" This reverts commit 62fedfb861f98fe480e2bf2ab2f8fb971951cb99. * fix force upgrade txn test case 1. execute extra txn without gas limit 2. make extra txn is last executed * fix burning tokens test * add more check for main network when executing extra txn * update stdlib version directly * fix fmt * stdlib framework v11 with move version 6 for test * some updates 1. regenerate halley genesisuser that will be used by SpinupWP to connect to the server and set it up. The SSH user requires root privileges and must be able to run sudo commands non-interactively. If you see the following error, you need to enable passwordless sudo for the specified Linux user. 2. remove some rescrictions * update force-deploy pkg path * update deploy account for main network * fix test cases * update halley genesis * minor updates 1. dont print extra txn body to log file 2. silence a warning * update halley force upgrade height * [force-deploy] set halley upgrade number to 600 * [force-upgrade] update genesis timestamp for halley test * [force-upgrade] 1. Remove framework deposit logic 2. Update halley genesis timestamp for genesis block 3. Update block number of force upgrade to 400 to prevent too long * [force-upgrade] Update block number of force upgrade to 300 to prevent too long * [force-upgrade] update genesis * change force deploy height of test network 1. change it to 15 2. update test cases * update extra-txn proccessing 1. restore moduleUpgradeStrategy properly 2. update some suicide logs * fix benchmark 1. update force upgrade height to 50 for test network 2. update test cases * [force-upgrade] set the barnard upgrade number * [force-upgrade] set the barnard upgrade number to 16082000 * update force deploy height for barnard --------- Co-authored-by: simonjiao Co-authored-by: nk_ysg --- Cargo.lock | 38 +++- Cargo.toml | 5 +- chain/Cargo.toml | 3 + chain/force-upgrade/Cargo.toml | 35 +++ chain/force-upgrade/src/lib.rs | 63 ++++++ chain/open-block/Cargo.toml | 3 + chain/open-block/src/lib.rs | 114 +++++++++- chain/src/chain.rs | 15 +- chain/tests/test_force_upgrade.rs | 210 ++++++++++++++++++ cmd/db-exporter/Cargo.toml | 6 +- cmd/db-exporter/src/force_deploy_output.rs | 159 +++++++++++++ cmd/db-exporter/src/lib.rs | 1 + cmd/db-exporter/src/main.rs | 10 + config/src/genesis_config.rs | 13 +- executor/Cargo.toml | 3 + executor/src/block_executor.rs | 127 ++++++++++- executor/tests/module_upgrade_test.rs | 2 +- genesis/generated/halley/genesis | Bin 116028 -> 89240 bytes genesis/generated/proxima/genesis | Bin 89192 -> 89192 bytes genesis/src/lib.rs | 3 +- kube/manifest/starcoin-halley.yaml | 2 +- test-helper/src/dao.rs | 2 +- test-helper/src/lib.rs | 2 +- .../src/account_universe/bad_transaction.rs | 1 + vm/stdlib/compiled/11/10-11/stdlib.blob | Bin 86490 -> 86490 bytes vm/stdlib/compiled/11/stdlib/62_Genesis.mv | Bin 3378 -> 3378 bytes vm/stdlib/compiled/12/11-12/stdlib.blob | Bin 113341 -> 88272 bytes .../compiled/12/11-12/stdlib/003_FromBCS.mv | Bin 240 -> 0 bytes ...{004_MintScripts.mv => 003_MintScripts.mv} | Bin .../stdlib/{005_SIP_2.mv => 004_SIP_2.mv} | Bin .../stdlib/{006_SIP_3.mv => 005_SIP_3.mv} | Bin .../12/11-12/stdlib/006_SignedInteger64.mv | Bin 0 -> 471 bytes .../12/11-12/stdlib/007_SignedInteger64.mv | Bin 463 -> 0 bytes .../stdlib/007_Vector.mv} | Bin 1256 -> 1100 bytes .../stdlib/{009_Errors.mv => 008_Errors.mv} | Bin vm/stdlib/compiled/12/11-12/stdlib/009_ACL.mv | Bin 0 -> 470 bytes vm/stdlib/compiled/12/11-12/stdlib/010_ACL.mv | Bin 435 -> 0 bytes .../stdlib/{011_Signer.mv => 010_Signer.mv} | Bin .../11-12/stdlib/{012_Math.mv => 011_Math.mv} | Bin vm/stdlib/compiled/12/11-12/stdlib/012_BCS.mv | Bin 0 -> 98 bytes .../stdlib/{015_Event.mv => 013_Event.mv} | Bin 695 -> 695 bytes vm/stdlib/compiled/12/11-12/stdlib/014_BCS.mv | Bin 3074 -> 0 bytes .../compiled/12/11-12/stdlib/014_Token.mv | Bin 0 -> 2397 bytes .../12/11-12/stdlib/015_CoreAddresses.mv | Bin 0 -> 460 bytes .../{018_Timestamp.mv => 016_Timestamp.mv} | Bin .../compiled/12/11-12/stdlib/016_Token.mv | Bin 2435 -> 0 bytes .../12/11-12/stdlib/017_CoreAddresses.mv | Bin 349 -> 0 bytes .../stdlib/{013_Option.mv => 017_Option.mv} | Bin .../stdlib/{019_Config.mv => 018_Config.mv} | Bin .../stdlib/{020_ChainId.mv => 019_ChainId.mv} | Bin .../stdlib/020_VMConfig.mv} | Bin 3967 -> 3631 bytes .../stdlib/{022_Version.mv => 021_Version.mv} | Bin .../stdlib/022_PackageTxnManager.mv} | Bin 3179 -> 3175 bytes .../{024_Treasury.mv => 023_Treasury.mv} | Bin .../11-12/stdlib/{025_Dao.mv => 024_Dao.mv} | Bin ...sal.mv => 025_UpgradeModuleDaoProposal.mv} | Bin ...fig.mv => 026_TransactionTimeoutConfig.mv} | Bin ...ion.mv => 027_TransactionPublishOption.mv} | Bin ...29_RewardConfig.mv => 028_RewardConfig.mv} | Bin ...inConfigDao.mv => 029_OnChainConfigDao.mv} | Bin ...osal.mv => 030_ModifyDaoConfigProposal.mv} | Bin ...sensusConfig.mv => 031_ConsensusConfig.mv} | Bin .../11-12/stdlib/{033_STC.mv => 032_STC.mv} | Bin ...ransactionFee.mv => 033_TransactionFee.mv} | Bin .../11-12/stdlib/{035_Hash.mv => 034_Hash.mv} | Bin .../11-12/stdlib/035_Authenticator.mv} | Bin 801 -> 801 bytes .../compiled/12/11-12/stdlib/036_Account.mv | Bin 0 -> 5235 bytes .../compiled/12/11-12/stdlib/037_Account.mv | Bin 6890 -> 0 bytes .../12/11-12/stdlib/037_AccountScripts.mv | Bin 0 -> 191 bytes .../12/11-12/stdlib/038_AccountScripts.mv | Bin 275 -> 0 bytes .../compiled/12/11-12/stdlib/038_Block.mv | Bin 0 -> 766 bytes .../compiled/12/11-12/stdlib/039_Arith.mv | Bin 467 -> 0 bytes ....mv => 039_TreasuryWithdrawDaoProposal.mv} | Bin ...{043_BlockReward.mv => 040_BlockReward.mv} | Bin .../compiled/12/11-12/stdlib/040_Ring.mv | Bin 1292 -> 0 bytes .../compiled/12/11-12/stdlib/041_Block.mv | Bin 2561 -> 0 bytes .../{044_Collection.mv => 041_Collection.mv} | Bin ...{045_Collection2.mv => 042_Collection2.mv} | Bin .../compiled/12/11-12/stdlib/043_Compare.mv | Bin 0 -> 526 bytes ...usStrategy.mv => 044_ConsensusStrategy.mv} | Bin ...aoVoteScripts.mv => 045_DaoVoteScripts.mv} | Bin .../compiled/12/11-12/stdlib/046_Compare.mv | Bin 623 -> 0 bytes .../{049_DummyToken.mv => 046_DummyToken.mv} | Bin ...kenScripts.mv => 047_DummyTokenScripts.mv} | Bin .../12/11-12/stdlib/048_EVMAddress.mv | Bin 0 -> 367 bytes .../stdlib/{059_Epoch.mv => 049_Epoch.mv} | Bin ...61_FixedPoint32.mv => 050_FixedPoint32.mv} | Bin .../12/11-12/stdlib/051_EVMAddress.mv | Bin 400 -> 0 bytes .../12/11-12/stdlib/051_FrozenConfig.mv | Bin 0 -> 670 bytes .../11-12/stdlib/052_FrozenConfigStrategy.mv | Bin 0 -> 2298 bytes .../compiled/12/11-12/stdlib/052_TypeInfo.mv | Bin 312 -> 0 bytes .../stdlib/053_GenesisSignerCapability.mv | Bin 464 -> 454 bytes .../12/11-12/stdlib/055_PriceOracle.mv | Bin 825 -> 694 bytes .../compiled/12/11-12/stdlib/056_EasyGas.mv | Bin 1589 -> 0 bytes ...63_STCUSDOracle.mv => 056_STCUSDOracle.mv} | Bin .../stdlib/{064_Offer.mv => 057_Offer.mv} | Bin .../12/11-12/stdlib/058_EasyGasScript.mv | Bin 430 -> 0 bytes vm/stdlib/compiled/12/11-12/stdlib/058_NFT.mv | Bin 0 -> 4046 bytes ...guageVersion.mv => 059_LanguageVersion.mv} | Bin .../compiled/12/11-12/stdlib/060_EventUtil.mv | Bin 490 -> 0 bytes ...{067_MerkleProof.mv => 060_MerkleProof.mv} | Bin .../11-12/stdlib/061_MerkleNFTDistributor.mv} | Bin 1259 -> 1259 bytes .../12/11-12/stdlib/062_GasSchedule.mv | Bin 8488 -> 0 bytes .../12/11-12/stdlib/062_IdentifierNFT.mv | Bin 0 -> 1049 bytes .../12/11-12/stdlib/063_GenesisNFT.mv | Bin 0 -> 1204 bytes .../11-12/stdlib/064_StdlibUpgradeScripts.mv | Bin 0 -> 2143 bytes .../11-12/stdlib/065_Genesis.mv} | Bin 3355 -> 3387 bytes vm/stdlib/compiled/12/11-12/stdlib/065_NFT.mv | Bin 4087 -> 0 bytes .../12/11-12/stdlib/066_GenesisNFTScripts.mv | Bin 0 -> 121 bytes .../11-12/stdlib/067_IdentifierNFTScripts.mv | Bin 0 -> 172 bytes ...tDaoProposal.mv => 068_MintDaoProposal.mv} | Bin .../12/11-12/stdlib/069_IdentifierNFT.mv | Bin 1493 -> 0 bytes .../11-12/stdlib/069_ModuleUpgradeScripts.mv | Bin 0 -> 756 bytes .../12/11-12/stdlib/070_GenesisNFT.mv | Bin 1242 -> 0 bytes .../12/11-12/stdlib/070_NFTGallery.mv | Bin 0 -> 1819 bytes .../12/11-12/stdlib/071_NFTGalleryScripts.mv | Bin 0 -> 174 bytes .../11-12/stdlib/071_StdlibUpgradeScripts.mv | Bin 2068 -> 0 bytes ...Scripts.mv => 072_OnChainConfigScripts.mv} | Bin .../12/11-12/stdlib/073_GenesisNFTScripts.mv | Bin 125 -> 0 bytes ...egator.mv => 073_PriceOracleAggregator.mv} | Bin .../11-12/stdlib/074_IdentifierNFTScripts.mv | Bin 204 -> 0 bytes .../12/11-12/stdlib/074_PriceOracleScripts.mv | Bin 0 -> 223 bytes .../compiled/12/11-12/stdlib/075_Signature.mv | Bin 0 -> 343 bytes .../11-12/stdlib/076_ModuleUpgradeScripts.mv | Bin 901 -> 0 bytes ...icKey.mv => 076_SharedEd25519PublicKey.mv} | Bin .../12/11-12/stdlib/077_NFTGallery.mv | Bin 2178 -> 0 bytes ...onTimeout.mv => 077_TransactionTimeout.mv} | Bin .../12/11-12/stdlib/078_NFTGalleryScripts.mv | Bin 271 -> 0 bytes .../12/11-12/stdlib/078_TransactionManager.mv | Bin 0 -> 1426 bytes ...nsferScripts.mv => 079_TransferScripts.mv} | Bin ...asuryScripts.mv => 080_TreasuryScripts.mv} | Bin .../compiled/12/11-12/stdlib/081_Arith.mv | Bin 0 -> 395 bytes .../12/11-12/stdlib/081_PriceOracleScripts.mv | Bin 274 -> 0 bytes .../compiled/12/11-12/stdlib/082_Secp256k1.mv | Bin 604 -> 0 bytes .../compiled/12/11-12/stdlib/082_U256.mv | Bin 0 -> 1411 bytes .../compiled/12/11-12/stdlib/083_Signature.mv | Bin 430 -> 0 bytes ...94_YieldFarming.mv => 083_YieldFarming.mv} | Bin ...ieldFarmingV2.mv => 084_YieldFarmingV2.mv} | Bin .../compiled/12/11-12/stdlib/085_SimpleMap.mv | Bin 1160 -> 0 bytes .../12/11-12/stdlib/086_StructuredHash.mv | Bin 270 -> 0 bytes .../12/11-12/stdlib/087_StarcoinVerifier.mv | Bin 1910 -> 0 bytes .../compiled/12/11-12/stdlib/088_String.mv | Bin 927 -> 0 bytes .../compiled/12/11-12/stdlib/089_Table.mv | Bin 1107 -> 0 bytes .../12/11-12/stdlib/091_TransactionManager.mv | Bin 2483 -> 0 bytes .../compiled/12/11-12/stdlib/093_U256.mv | Bin 1125 -> 0 bytes vm/stdlib/compiled/12/stdlib/003_FromBCS.mv | Bin 240 -> 0 bytes ...{004_MintScripts.mv => 003_MintScripts.mv} | Bin .../12/stdlib/{005_SIP_2.mv => 004_SIP_2.mv} | Bin .../12/stdlib/{006_SIP_3.mv => 005_SIP_3.mv} | Bin .../compiled/12/stdlib/006_SignedInteger64.mv | Bin 0 -> 471 bytes .../compiled/12/stdlib/007_SignedInteger64.mv | Bin 463 -> 0 bytes .../008_Vector.mv => 12/stdlib/007_Vector.mv} | Bin 1256 -> 1100 bytes .../stdlib/{009_Errors.mv => 008_Errors.mv} | Bin vm/stdlib/compiled/12/stdlib/009_ACL.mv | Bin 0 -> 470 bytes vm/stdlib/compiled/12/stdlib/010_ACL.mv | Bin 435 -> 0 bytes .../stdlib/{011_Signer.mv => 010_Signer.mv} | Bin .../12/stdlib/{012_Math.mv => 011_Math.mv} | Bin vm/stdlib/compiled/12/stdlib/012_BCS.mv | Bin 0 -> 98 bytes .../12/stdlib/{015_Event.mv => 013_Event.mv} | Bin 695 -> 695 bytes vm/stdlib/compiled/12/stdlib/014_BCS.mv | Bin 3074 -> 0 bytes vm/stdlib/compiled/12/stdlib/014_Token.mv | Bin 0 -> 2397 bytes .../compiled/12/stdlib/015_CoreAddresses.mv | Bin 0 -> 460 bytes .../{018_Timestamp.mv => 016_Timestamp.mv} | Bin vm/stdlib/compiled/12/stdlib/016_Token.mv | Bin 2435 -> 0 bytes .../compiled/12/stdlib/017_CoreAddresses.mv | Bin 349 -> 0 bytes .../stdlib/{013_Option.mv => 017_Option.mv} | Bin .../stdlib/{019_Config.mv => 018_Config.mv} | Bin .../stdlib/{020_ChainId.mv => 019_ChainId.mv} | Bin .../stdlib/020_VMConfig.mv} | Bin 3967 -> 3631 bytes .../stdlib/{022_Version.mv => 021_Version.mv} | Bin .../stdlib/022_PackageTxnManager.mv} | Bin 3179 -> 3175 bytes .../{024_Treasury.mv => 023_Treasury.mv} | Bin .../12/stdlib/{025_Dao.mv => 024_Dao.mv} | Bin ...sal.mv => 025_UpgradeModuleDaoProposal.mv} | Bin ...fig.mv => 026_TransactionTimeoutConfig.mv} | Bin ...ion.mv => 027_TransactionPublishOption.mv} | Bin ...29_RewardConfig.mv => 028_RewardConfig.mv} | Bin ...inConfigDao.mv => 029_OnChainConfigDao.mv} | Bin ...osal.mv => 030_ModifyDaoConfigProposal.mv} | Bin ...sensusConfig.mv => 031_ConsensusConfig.mv} | Bin .../12/stdlib/{033_STC.mv => 032_STC.mv} | Bin ...ransactionFee.mv => 033_TransactionFee.mv} | Bin .../12/stdlib/{035_Hash.mv => 034_Hash.mv} | Bin .../035_Authenticator.mv} | Bin 801 -> 801 bytes vm/stdlib/compiled/12/stdlib/036_Account.mv | Bin 0 -> 5235 bytes vm/stdlib/compiled/12/stdlib/037_Account.mv | Bin 6890 -> 0 bytes .../compiled/12/stdlib/037_AccountScripts.mv | Bin 0 -> 191 bytes .../compiled/12/stdlib/038_AccountScripts.mv | Bin 275 -> 0 bytes vm/stdlib/compiled/12/stdlib/038_Block.mv | Bin 0 -> 766 bytes vm/stdlib/compiled/12/stdlib/039_Arith.mv | Bin 467 -> 0 bytes ....mv => 039_TreasuryWithdrawDaoProposal.mv} | Bin ...{043_BlockReward.mv => 040_BlockReward.mv} | Bin vm/stdlib/compiled/12/stdlib/040_Ring.mv | Bin 1292 -> 0 bytes vm/stdlib/compiled/12/stdlib/041_Block.mv | Bin 2561 -> 0 bytes .../{044_Collection.mv => 041_Collection.mv} | Bin ...{045_Collection2.mv => 042_Collection2.mv} | Bin vm/stdlib/compiled/12/stdlib/043_Compare.mv | Bin 0 -> 526 bytes ...usStrategy.mv => 044_ConsensusStrategy.mv} | Bin ...aoVoteScripts.mv => 045_DaoVoteScripts.mv} | Bin vm/stdlib/compiled/12/stdlib/046_Compare.mv | Bin 623 -> 0 bytes .../{049_DummyToken.mv => 046_DummyToken.mv} | Bin ...kenScripts.mv => 047_DummyTokenScripts.mv} | Bin .../compiled/12/stdlib/048_EVMAddress.mv | Bin 0 -> 367 bytes .../12/stdlib/{059_Epoch.mv => 049_Epoch.mv} | Bin ...61_FixedPoint32.mv => 050_FixedPoint32.mv} | Bin .../compiled/12/stdlib/051_EVMAddress.mv | Bin 400 -> 0 bytes .../compiled/12/stdlib/051_FrozenConfig.mv | Bin 0 -> 670 bytes .../12/stdlib/052_FrozenConfigStrategy.mv | Bin 0 -> 2298 bytes vm/stdlib/compiled/12/stdlib/052_TypeInfo.mv | Bin 312 -> 0 bytes .../12/stdlib/053_GenesisSignerCapability.mv | Bin 464 -> 454 bytes .../compiled/12/stdlib/055_PriceOracle.mv | Bin 825 -> 694 bytes vm/stdlib/compiled/12/stdlib/056_EasyGas.mv | Bin 1589 -> 0 bytes ...63_STCUSDOracle.mv => 056_STCUSDOracle.mv} | Bin .../12/stdlib/{064_Offer.mv => 057_Offer.mv} | Bin .../compiled/12/stdlib/058_EasyGasScript.mv | Bin 430 -> 0 bytes vm/stdlib/compiled/12/stdlib/058_NFT.mv | Bin 0 -> 4046 bytes ...guageVersion.mv => 059_LanguageVersion.mv} | Bin vm/stdlib/compiled/12/stdlib/060_EventUtil.mv | Bin 490 -> 0 bytes ...{067_MerkleProof.mv => 060_MerkleProof.mv} | Bin .../061_MerkleNFTDistributor.mv} | Bin 1259 -> 1259 bytes .../compiled/12/stdlib/062_GasSchedule.mv | Bin 8488 -> 0 bytes .../compiled/12/stdlib/062_IdentifierNFT.mv | Bin 0 -> 1049 bytes .../compiled/12/stdlib/063_GenesisNFT.mv | Bin 0 -> 1204 bytes .../12/stdlib/064_StdlibUpgradeScripts.mv | Bin 0 -> 2143 bytes .../stdlib/{072_Genesis.mv => 065_Genesis.mv} | Bin 3355 -> 3387 bytes vm/stdlib/compiled/12/stdlib/065_NFT.mv | Bin 4087 -> 0 bytes .../12/stdlib/066_GenesisNFTScripts.mv | Bin 0 -> 121 bytes .../12/stdlib/067_IdentifierNFTScripts.mv | Bin 0 -> 172 bytes ...tDaoProposal.mv => 068_MintDaoProposal.mv} | Bin .../compiled/12/stdlib/069_IdentifierNFT.mv | Bin 1493 -> 0 bytes .../12/stdlib/069_ModuleUpgradeScripts.mv | Bin 0 -> 756 bytes .../compiled/12/stdlib/070_GenesisNFT.mv | Bin 1242 -> 0 bytes .../compiled/12/stdlib/070_NFTGallery.mv | Bin 0 -> 1819 bytes .../12/stdlib/071_NFTGalleryScripts.mv | Bin 0 -> 174 bytes .../12/stdlib/071_StdlibUpgradeScripts.mv | Bin 2068 -> 0 bytes ...Scripts.mv => 072_OnChainConfigScripts.mv} | Bin .../12/stdlib/073_GenesisNFTScripts.mv | Bin 125 -> 0 bytes ...egator.mv => 073_PriceOracleAggregator.mv} | Bin .../12/stdlib/074_IdentifierNFTScripts.mv | Bin 204 -> 0 bytes .../12/stdlib/074_PriceOracleScripts.mv | Bin 0 -> 223 bytes vm/stdlib/compiled/12/stdlib/075_Signature.mv | Bin 0 -> 343 bytes .../12/stdlib/076_ModuleUpgradeScripts.mv | Bin 901 -> 0 bytes ...icKey.mv => 076_SharedEd25519PublicKey.mv} | Bin .../compiled/12/stdlib/077_NFTGallery.mv | Bin 2178 -> 0 bytes ...onTimeout.mv => 077_TransactionTimeout.mv} | Bin .../12/stdlib/078_NFTGalleryScripts.mv | Bin 271 -> 0 bytes .../12/stdlib/078_TransactionManager.mv | Bin 0 -> 1426 bytes ...nsferScripts.mv => 079_TransferScripts.mv} | Bin ...asuryScripts.mv => 080_TreasuryScripts.mv} | Bin vm/stdlib/compiled/12/stdlib/081_Arith.mv | Bin 0 -> 395 bytes .../12/stdlib/081_PriceOracleScripts.mv | Bin 274 -> 0 bytes vm/stdlib/compiled/12/stdlib/082_Secp256k1.mv | Bin 604 -> 0 bytes vm/stdlib/compiled/12/stdlib/082_U256.mv | Bin 0 -> 1411 bytes vm/stdlib/compiled/12/stdlib/083_Signature.mv | Bin 430 -> 0 bytes ...94_YieldFarming.mv => 083_YieldFarming.mv} | Bin ...ieldFarmingV2.mv => 084_YieldFarmingV2.mv} | Bin vm/stdlib/compiled/12/stdlib/085_SimpleMap.mv | Bin 1160 -> 0 bytes .../compiled/12/stdlib/086_StructuredHash.mv | Bin 270 -> 0 bytes .../12/stdlib/087_StarcoinVerifier.mv | Bin 1910 -> 0 bytes vm/stdlib/compiled/12/stdlib/088_String.mv | Bin 927 -> 0 bytes vm/stdlib/compiled/12/stdlib/089_Table.mv | Bin 1107 -> 0 bytes .../12/stdlib/091_TransactionManager.mv | Bin 2483 -> 0 bytes vm/stdlib/compiled/12/stdlib/093_U256.mv | Bin 1125 -> 0 bytes .../error_descriptions.errmap | Bin 10372 -> 8855 bytes .../compiled/latest/stdlib/003_FromBCS.mv | Bin 240 -> 0 bytes ...{004_MintScripts.mv => 003_MintScripts.mv} | Bin .../stdlib/{005_SIP_2.mv => 004_SIP_2.mv} | Bin .../stdlib/{006_SIP_3.mv => 005_SIP_3.mv} | Bin .../latest/stdlib/006_SignedInteger64.mv | Bin 0 -> 471 bytes .../latest/stdlib/007_SignedInteger64.mv | Bin 463 -> 0 bytes .../stdlib/007_Vector.mv} | Bin 1256 -> 1100 bytes .../stdlib/{009_Errors.mv => 008_Errors.mv} | Bin vm/stdlib/compiled/latest/stdlib/009_ACL.mv | Bin 0 -> 470 bytes vm/stdlib/compiled/latest/stdlib/010_ACL.mv | Bin 435 -> 0 bytes .../stdlib/{011_Signer.mv => 010_Signer.mv} | Bin .../stdlib/{012_Math.mv => 011_Math.mv} | Bin vm/stdlib/compiled/latest/stdlib/012_BCS.mv | Bin 0 -> 98 bytes .../stdlib/{015_Event.mv => 013_Event.mv} | Bin 695 -> 695 bytes vm/stdlib/compiled/latest/stdlib/014_BCS.mv | Bin 3074 -> 0 bytes vm/stdlib/compiled/latest/stdlib/014_Token.mv | Bin 0 -> 2397 bytes .../latest/stdlib/015_CoreAddresses.mv | Bin 0 -> 460 bytes .../{018_Timestamp.mv => 016_Timestamp.mv} | Bin vm/stdlib/compiled/latest/stdlib/016_Token.mv | Bin 2435 -> 0 bytes .../latest/stdlib/017_CoreAddresses.mv | Bin 349 -> 0 bytes .../stdlib/{013_Option.mv => 017_Option.mv} | Bin .../stdlib/{019_Config.mv => 018_Config.mv} | Bin .../stdlib/{020_ChainId.mv => 019_ChainId.mv} | Bin .../stdlib/020_VMConfig.mv} | Bin 3967 -> 3631 bytes .../stdlib/{022_Version.mv => 021_Version.mv} | Bin .../stdlib/022_PackageTxnManager.mv} | Bin 3179 -> 3175 bytes .../{024_Treasury.mv => 023_Treasury.mv} | Bin .../latest/stdlib/{025_Dao.mv => 024_Dao.mv} | Bin ...sal.mv => 025_UpgradeModuleDaoProposal.mv} | Bin ...fig.mv => 026_TransactionTimeoutConfig.mv} | Bin ...ion.mv => 027_TransactionPublishOption.mv} | Bin ...29_RewardConfig.mv => 028_RewardConfig.mv} | Bin ...inConfigDao.mv => 029_OnChainConfigDao.mv} | Bin ...osal.mv => 030_ModifyDaoConfigProposal.mv} | Bin ...sensusConfig.mv => 031_ConsensusConfig.mv} | Bin .../latest/stdlib/{033_STC.mv => 032_STC.mv} | Bin ...ransactionFee.mv => 033_TransactionFee.mv} | Bin .../stdlib/{035_Hash.mv => 034_Hash.mv} | Bin .../stdlib/035_Authenticator.mv} | Bin 801 -> 801 bytes .../compiled/latest/stdlib/036_Account.mv | Bin 0 -> 5235 bytes .../compiled/latest/stdlib/037_Account.mv | Bin 6890 -> 0 bytes .../latest/stdlib/037_AccountScripts.mv | Bin 0 -> 191 bytes .../latest/stdlib/038_AccountScripts.mv | Bin 275 -> 0 bytes vm/stdlib/compiled/latest/stdlib/038_Block.mv | Bin 0 -> 766 bytes vm/stdlib/compiled/latest/stdlib/039_Arith.mv | Bin 467 -> 0 bytes ....mv => 039_TreasuryWithdrawDaoProposal.mv} | Bin ...{043_BlockReward.mv => 040_BlockReward.mv} | Bin vm/stdlib/compiled/latest/stdlib/040_Ring.mv | Bin 1292 -> 0 bytes vm/stdlib/compiled/latest/stdlib/041_Block.mv | Bin 2561 -> 0 bytes .../{044_Collection.mv => 041_Collection.mv} | Bin ...{045_Collection2.mv => 042_Collection2.mv} | Bin .../compiled/latest/stdlib/043_Compare.mv | Bin 0 -> 526 bytes ...usStrategy.mv => 044_ConsensusStrategy.mv} | Bin ...aoVoteScripts.mv => 045_DaoVoteScripts.mv} | Bin .../compiled/latest/stdlib/046_Compare.mv | Bin 623 -> 0 bytes .../{049_DummyToken.mv => 046_DummyToken.mv} | Bin ...kenScripts.mv => 047_DummyTokenScripts.mv} | Bin .../compiled/latest/stdlib/048_EVMAddress.mv | Bin 0 -> 367 bytes .../stdlib/{059_Epoch.mv => 049_Epoch.mv} | Bin ...61_FixedPoint32.mv => 050_FixedPoint32.mv} | Bin .../compiled/latest/stdlib/051_EVMAddress.mv | Bin 400 -> 0 bytes .../latest/stdlib/051_FrozenConfig.mv | Bin 0 -> 670 bytes .../latest/stdlib/052_FrozenConfigStrategy.mv | Bin 0 -> 2298 bytes .../compiled/latest/stdlib/052_TypeInfo.mv | Bin 312 -> 0 bytes .../stdlib/053_GenesisSignerCapability.mv | Bin 464 -> 454 bytes .../compiled/latest/stdlib/055_PriceOracle.mv | Bin 825 -> 694 bytes .../compiled/latest/stdlib/056_EasyGas.mv | Bin 1589 -> 0 bytes ...63_STCUSDOracle.mv => 056_STCUSDOracle.mv} | Bin .../stdlib/{064_Offer.mv => 057_Offer.mv} | Bin .../latest/stdlib/058_EasyGasScript.mv | Bin 430 -> 0 bytes vm/stdlib/compiled/latest/stdlib/058_NFT.mv | Bin 0 -> 4046 bytes ...guageVersion.mv => 059_LanguageVersion.mv} | Bin .../compiled/latest/stdlib/060_EventUtil.mv | Bin 490 -> 0 bytes ...{067_MerkleProof.mv => 060_MerkleProof.mv} | Bin .../stdlib/061_MerkleNFTDistributor.mv} | Bin 1259 -> 1259 bytes .../compiled/latest/stdlib/062_GasSchedule.mv | Bin 8488 -> 0 bytes .../latest/stdlib/062_IdentifierNFT.mv | Bin 0 -> 1049 bytes .../compiled/latest/stdlib/063_GenesisNFT.mv | Bin 0 -> 1204 bytes .../latest/stdlib/064_StdlibUpgradeScripts.mv | Bin 0 -> 2143 bytes .../stdlib/065_Genesis.mv} | Bin 3355 -> 3387 bytes vm/stdlib/compiled/latest/stdlib/065_NFT.mv | Bin 4087 -> 0 bytes .../latest/stdlib/066_GenesisNFTScripts.mv | Bin 0 -> 121 bytes .../latest/stdlib/067_IdentifierNFTScripts.mv | Bin 0 -> 172 bytes ...tDaoProposal.mv => 068_MintDaoProposal.mv} | Bin .../latest/stdlib/069_IdentifierNFT.mv | Bin 1493 -> 0 bytes .../latest/stdlib/069_ModuleUpgradeScripts.mv | Bin 0 -> 756 bytes .../compiled/latest/stdlib/070_GenesisNFT.mv | Bin 1242 -> 0 bytes .../compiled/latest/stdlib/070_NFTGallery.mv | Bin 0 -> 1819 bytes .../latest/stdlib/071_NFTGalleryScripts.mv | Bin 0 -> 174 bytes .../latest/stdlib/071_StdlibUpgradeScripts.mv | Bin 2068 -> 0 bytes ...Scripts.mv => 072_OnChainConfigScripts.mv} | Bin .../latest/stdlib/073_GenesisNFTScripts.mv | Bin 125 -> 0 bytes ...egator.mv => 073_PriceOracleAggregator.mv} | Bin .../latest/stdlib/074_IdentifierNFTScripts.mv | Bin 204 -> 0 bytes .../latest/stdlib/074_PriceOracleScripts.mv | Bin 0 -> 223 bytes .../compiled/latest/stdlib/075_Signature.mv | Bin 0 -> 343 bytes .../latest/stdlib/076_ModuleUpgradeScripts.mv | Bin 901 -> 0 bytes ...icKey.mv => 076_SharedEd25519PublicKey.mv} | Bin .../compiled/latest/stdlib/077_NFTGallery.mv | Bin 2178 -> 0 bytes ...onTimeout.mv => 077_TransactionTimeout.mv} | Bin .../latest/stdlib/078_NFTGalleryScripts.mv | Bin 271 -> 0 bytes .../latest/stdlib/078_TransactionManager.mv | Bin 0 -> 1426 bytes ...nsferScripts.mv => 079_TransferScripts.mv} | Bin ...asuryScripts.mv => 080_TreasuryScripts.mv} | Bin vm/stdlib/compiled/latest/stdlib/081_Arith.mv | Bin 0 -> 395 bytes .../latest/stdlib/081_PriceOracleScripts.mv | Bin 274 -> 0 bytes .../compiled/latest/stdlib/082_Secp256k1.mv | Bin 604 -> 0 bytes vm/stdlib/compiled/latest/stdlib/082_U256.mv | Bin 0 -> 1411 bytes .../compiled/latest/stdlib/083_Signature.mv | Bin 430 -> 0 bytes ...94_YieldFarming.mv => 083_YieldFarming.mv} | Bin ...ieldFarmingV2.mv => 084_YieldFarmingV2.mv} | Bin .../compiled/latest/stdlib/085_SimpleMap.mv | Bin 1160 -> 0 bytes .../latest/stdlib/086_StructuredHash.mv | Bin 270 -> 0 bytes .../latest/stdlib/087_StarcoinVerifier.mv | Bin 1910 -> 0 bytes .../compiled/latest/stdlib/088_String.mv | Bin 927 -> 0 bytes vm/stdlib/compiled/latest/stdlib/089_Table.mv | Bin 1107 -> 0 bytes .../latest/stdlib/091_TransactionManager.mv | Bin 2483 -> 0 bytes vm/stdlib/compiled/latest/stdlib/093_U256.mv | Bin 1125 -> 0 bytes vm/types/src/on_chain_config/gas_schedule.rs | 1 + vm/vm-runtime/Cargo.toml | 1 + vm/vm-runtime/src/force_upgrade_management.rs | 84 +++++++ vm/vm-runtime/src/lib.rs | 2 +- vm/vm-runtime/src/starcoin_vm.rs | 21 +- 387 files changed, 893 insertions(+), 33 deletions(-) create mode 100644 chain/force-upgrade/Cargo.toml create mode 100644 chain/force-upgrade/src/lib.rs create mode 100644 chain/tests/test_force_upgrade.rs create mode 100644 cmd/db-exporter/src/force_deploy_output.rs delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/003_FromBCS.mv rename vm/stdlib/compiled/12/11-12/stdlib/{004_MintScripts.mv => 003_MintScripts.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{005_SIP_2.mv => 004_SIP_2.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{006_SIP_3.mv => 005_SIP_3.mv} (100%) create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/006_SignedInteger64.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/007_SignedInteger64.mv rename vm/stdlib/compiled/12/{stdlib/008_Vector.mv => 11-12/stdlib/007_Vector.mv} (51%) rename vm/stdlib/compiled/12/11-12/stdlib/{009_Errors.mv => 008_Errors.mv} (100%) create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/009_ACL.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/010_ACL.mv rename vm/stdlib/compiled/12/11-12/stdlib/{011_Signer.mv => 010_Signer.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{012_Math.mv => 011_Math.mv} (100%) create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/012_BCS.mv rename vm/stdlib/compiled/12/11-12/stdlib/{015_Event.mv => 013_Event.mv} (92%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/014_BCS.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/014_Token.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/015_CoreAddresses.mv rename vm/stdlib/compiled/12/11-12/stdlib/{018_Timestamp.mv => 016_Timestamp.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/016_Token.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/017_CoreAddresses.mv rename vm/stdlib/compiled/12/11-12/stdlib/{013_Option.mv => 017_Option.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{019_Config.mv => 018_Config.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{020_ChainId.mv => 019_ChainId.mv} (100%) rename vm/stdlib/compiled/12/{stdlib/021_VMConfig.mv => 11-12/stdlib/020_VMConfig.mv} (87%) rename vm/stdlib/compiled/12/11-12/stdlib/{022_Version.mv => 021_Version.mv} (100%) rename vm/stdlib/compiled/12/{stdlib/023_PackageTxnManager.mv => 11-12/stdlib/022_PackageTxnManager.mv} (91%) rename vm/stdlib/compiled/12/11-12/stdlib/{024_Treasury.mv => 023_Treasury.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{025_Dao.mv => 024_Dao.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{026_UpgradeModuleDaoProposal.mv => 025_UpgradeModuleDaoProposal.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{027_TransactionTimeoutConfig.mv => 026_TransactionTimeoutConfig.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{028_TransactionPublishOption.mv => 027_TransactionPublishOption.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{029_RewardConfig.mv => 028_RewardConfig.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{030_OnChainConfigDao.mv => 029_OnChainConfigDao.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{031_ModifyDaoConfigProposal.mv => 030_ModifyDaoConfigProposal.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{032_ConsensusConfig.mv => 031_ConsensusConfig.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{033_STC.mv => 032_STC.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{034_TransactionFee.mv => 033_TransactionFee.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{035_Hash.mv => 034_Hash.mv} (100%) rename vm/stdlib/compiled/{latest/stdlib/036_Authenticator.mv => 12/11-12/stdlib/035_Authenticator.mv} (95%) create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/036_Account.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/037_Account.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/037_AccountScripts.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/038_AccountScripts.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/038_Block.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/039_Arith.mv rename vm/stdlib/compiled/12/11-12/stdlib/{042_TreasuryWithdrawDaoProposal.mv => 039_TreasuryWithdrawDaoProposal.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{043_BlockReward.mv => 040_BlockReward.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/040_Ring.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/041_Block.mv rename vm/stdlib/compiled/12/11-12/stdlib/{044_Collection.mv => 041_Collection.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{045_Collection2.mv => 042_Collection2.mv} (100%) create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/043_Compare.mv rename vm/stdlib/compiled/12/11-12/stdlib/{047_ConsensusStrategy.mv => 044_ConsensusStrategy.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{048_DaoVoteScripts.mv => 045_DaoVoteScripts.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/046_Compare.mv rename vm/stdlib/compiled/12/11-12/stdlib/{049_DummyToken.mv => 046_DummyToken.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{050_DummyTokenScripts.mv => 047_DummyTokenScripts.mv} (100%) create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/048_EVMAddress.mv rename vm/stdlib/compiled/12/11-12/stdlib/{059_Epoch.mv => 049_Epoch.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{061_FixedPoint32.mv => 050_FixedPoint32.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/051_EVMAddress.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/051_FrozenConfig.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/052_FrozenConfigStrategy.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/052_TypeInfo.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/056_EasyGas.mv rename vm/stdlib/compiled/12/11-12/stdlib/{063_STCUSDOracle.mv => 056_STCUSDOracle.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{064_Offer.mv => 057_Offer.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/058_EasyGasScript.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/058_NFT.mv rename vm/stdlib/compiled/12/11-12/stdlib/{066_LanguageVersion.mv => 059_LanguageVersion.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/060_EventUtil.mv rename vm/stdlib/compiled/12/11-12/stdlib/{067_MerkleProof.mv => 060_MerkleProof.mv} (100%) rename vm/stdlib/compiled/{latest/stdlib/068_MerkleNFTDistributor.mv => 12/11-12/stdlib/061_MerkleNFTDistributor.mv} (98%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/062_GasSchedule.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/062_IdentifierNFT.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/063_GenesisNFT.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/064_StdlibUpgradeScripts.mv rename vm/stdlib/compiled/{latest/stdlib/072_Genesis.mv => 12/11-12/stdlib/065_Genesis.mv} (78%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/065_NFT.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/066_GenesisNFTScripts.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/067_IdentifierNFTScripts.mv rename vm/stdlib/compiled/12/11-12/stdlib/{075_MintDaoProposal.mv => 068_MintDaoProposal.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/069_IdentifierNFT.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/069_ModuleUpgradeScripts.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/070_GenesisNFT.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/070_NFTGallery.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/071_NFTGalleryScripts.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/071_StdlibUpgradeScripts.mv rename vm/stdlib/compiled/12/11-12/stdlib/{079_OnChainConfigScripts.mv => 072_OnChainConfigScripts.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/073_GenesisNFTScripts.mv rename vm/stdlib/compiled/12/11-12/stdlib/{080_PriceOracleAggregator.mv => 073_PriceOracleAggregator.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/074_IdentifierNFTScripts.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/074_PriceOracleScripts.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/075_Signature.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/076_ModuleUpgradeScripts.mv rename vm/stdlib/compiled/12/11-12/stdlib/{084_SharedEd25519PublicKey.mv => 076_SharedEd25519PublicKey.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/077_NFTGallery.mv rename vm/stdlib/compiled/12/11-12/stdlib/{090_TransactionTimeout.mv => 077_TransactionTimeout.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/078_NFTGalleryScripts.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/078_TransactionManager.mv rename vm/stdlib/compiled/12/11-12/stdlib/{057_TransferScripts.mv => 079_TransferScripts.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{092_TreasuryScripts.mv => 080_TreasuryScripts.mv} (100%) create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/081_Arith.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/081_PriceOracleScripts.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/082_Secp256k1.mv create mode 100644 vm/stdlib/compiled/12/11-12/stdlib/082_U256.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/083_Signature.mv rename vm/stdlib/compiled/12/11-12/stdlib/{094_YieldFarming.mv => 083_YieldFarming.mv} (100%) rename vm/stdlib/compiled/12/11-12/stdlib/{095_YieldFarmingV2.mv => 084_YieldFarmingV2.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/085_SimpleMap.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/086_StructuredHash.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/087_StarcoinVerifier.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/088_String.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/089_Table.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/091_TransactionManager.mv delete mode 100644 vm/stdlib/compiled/12/11-12/stdlib/093_U256.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/003_FromBCS.mv rename vm/stdlib/compiled/12/stdlib/{004_MintScripts.mv => 003_MintScripts.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{005_SIP_2.mv => 004_SIP_2.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{006_SIP_3.mv => 005_SIP_3.mv} (100%) create mode 100644 vm/stdlib/compiled/12/stdlib/006_SignedInteger64.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/007_SignedInteger64.mv rename vm/stdlib/compiled/{latest/stdlib/008_Vector.mv => 12/stdlib/007_Vector.mv} (51%) rename vm/stdlib/compiled/12/stdlib/{009_Errors.mv => 008_Errors.mv} (100%) create mode 100644 vm/stdlib/compiled/12/stdlib/009_ACL.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/010_ACL.mv rename vm/stdlib/compiled/12/stdlib/{011_Signer.mv => 010_Signer.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{012_Math.mv => 011_Math.mv} (100%) create mode 100644 vm/stdlib/compiled/12/stdlib/012_BCS.mv rename vm/stdlib/compiled/12/stdlib/{015_Event.mv => 013_Event.mv} (92%) delete mode 100644 vm/stdlib/compiled/12/stdlib/014_BCS.mv create mode 100644 vm/stdlib/compiled/12/stdlib/014_Token.mv create mode 100644 vm/stdlib/compiled/12/stdlib/015_CoreAddresses.mv rename vm/stdlib/compiled/12/stdlib/{018_Timestamp.mv => 016_Timestamp.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/016_Token.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/017_CoreAddresses.mv rename vm/stdlib/compiled/12/stdlib/{013_Option.mv => 017_Option.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{019_Config.mv => 018_Config.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{020_ChainId.mv => 019_ChainId.mv} (100%) rename vm/stdlib/compiled/{latest/stdlib/021_VMConfig.mv => 12/stdlib/020_VMConfig.mv} (87%) rename vm/stdlib/compiled/12/stdlib/{022_Version.mv => 021_Version.mv} (100%) rename vm/stdlib/compiled/{latest/stdlib/023_PackageTxnManager.mv => 12/stdlib/022_PackageTxnManager.mv} (91%) rename vm/stdlib/compiled/12/stdlib/{024_Treasury.mv => 023_Treasury.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{025_Dao.mv => 024_Dao.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{026_UpgradeModuleDaoProposal.mv => 025_UpgradeModuleDaoProposal.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{027_TransactionTimeoutConfig.mv => 026_TransactionTimeoutConfig.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{028_TransactionPublishOption.mv => 027_TransactionPublishOption.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{029_RewardConfig.mv => 028_RewardConfig.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{030_OnChainConfigDao.mv => 029_OnChainConfigDao.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{031_ModifyDaoConfigProposal.mv => 030_ModifyDaoConfigProposal.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{032_ConsensusConfig.mv => 031_ConsensusConfig.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{033_STC.mv => 032_STC.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{034_TransactionFee.mv => 033_TransactionFee.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{035_Hash.mv => 034_Hash.mv} (100%) rename vm/stdlib/compiled/12/{11-12/stdlib/036_Authenticator.mv => stdlib/035_Authenticator.mv} (95%) create mode 100644 vm/stdlib/compiled/12/stdlib/036_Account.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/037_Account.mv create mode 100644 vm/stdlib/compiled/12/stdlib/037_AccountScripts.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/038_AccountScripts.mv create mode 100644 vm/stdlib/compiled/12/stdlib/038_Block.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/039_Arith.mv rename vm/stdlib/compiled/12/stdlib/{042_TreasuryWithdrawDaoProposal.mv => 039_TreasuryWithdrawDaoProposal.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{043_BlockReward.mv => 040_BlockReward.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/040_Ring.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/041_Block.mv rename vm/stdlib/compiled/12/stdlib/{044_Collection.mv => 041_Collection.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{045_Collection2.mv => 042_Collection2.mv} (100%) create mode 100644 vm/stdlib/compiled/12/stdlib/043_Compare.mv rename vm/stdlib/compiled/12/stdlib/{047_ConsensusStrategy.mv => 044_ConsensusStrategy.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{048_DaoVoteScripts.mv => 045_DaoVoteScripts.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/046_Compare.mv rename vm/stdlib/compiled/12/stdlib/{049_DummyToken.mv => 046_DummyToken.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{050_DummyTokenScripts.mv => 047_DummyTokenScripts.mv} (100%) create mode 100644 vm/stdlib/compiled/12/stdlib/048_EVMAddress.mv rename vm/stdlib/compiled/12/stdlib/{059_Epoch.mv => 049_Epoch.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{061_FixedPoint32.mv => 050_FixedPoint32.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/051_EVMAddress.mv create mode 100644 vm/stdlib/compiled/12/stdlib/051_FrozenConfig.mv create mode 100644 vm/stdlib/compiled/12/stdlib/052_FrozenConfigStrategy.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/052_TypeInfo.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/056_EasyGas.mv rename vm/stdlib/compiled/12/stdlib/{063_STCUSDOracle.mv => 056_STCUSDOracle.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{064_Offer.mv => 057_Offer.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/058_EasyGasScript.mv create mode 100644 vm/stdlib/compiled/12/stdlib/058_NFT.mv rename vm/stdlib/compiled/12/stdlib/{066_LanguageVersion.mv => 059_LanguageVersion.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/060_EventUtil.mv rename vm/stdlib/compiled/12/stdlib/{067_MerkleProof.mv => 060_MerkleProof.mv} (100%) rename vm/stdlib/compiled/12/{11-12/stdlib/068_MerkleNFTDistributor.mv => stdlib/061_MerkleNFTDistributor.mv} (98%) delete mode 100644 vm/stdlib/compiled/12/stdlib/062_GasSchedule.mv create mode 100644 vm/stdlib/compiled/12/stdlib/062_IdentifierNFT.mv create mode 100644 vm/stdlib/compiled/12/stdlib/063_GenesisNFT.mv create mode 100644 vm/stdlib/compiled/12/stdlib/064_StdlibUpgradeScripts.mv rename vm/stdlib/compiled/12/stdlib/{072_Genesis.mv => 065_Genesis.mv} (78%) delete mode 100644 vm/stdlib/compiled/12/stdlib/065_NFT.mv create mode 100644 vm/stdlib/compiled/12/stdlib/066_GenesisNFTScripts.mv create mode 100644 vm/stdlib/compiled/12/stdlib/067_IdentifierNFTScripts.mv rename vm/stdlib/compiled/12/stdlib/{075_MintDaoProposal.mv => 068_MintDaoProposal.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/069_IdentifierNFT.mv create mode 100644 vm/stdlib/compiled/12/stdlib/069_ModuleUpgradeScripts.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/070_GenesisNFT.mv create mode 100644 vm/stdlib/compiled/12/stdlib/070_NFTGallery.mv create mode 100644 vm/stdlib/compiled/12/stdlib/071_NFTGalleryScripts.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/071_StdlibUpgradeScripts.mv rename vm/stdlib/compiled/12/stdlib/{079_OnChainConfigScripts.mv => 072_OnChainConfigScripts.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/073_GenesisNFTScripts.mv rename vm/stdlib/compiled/12/stdlib/{080_PriceOracleAggregator.mv => 073_PriceOracleAggregator.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/074_IdentifierNFTScripts.mv create mode 100644 vm/stdlib/compiled/12/stdlib/074_PriceOracleScripts.mv create mode 100644 vm/stdlib/compiled/12/stdlib/075_Signature.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/076_ModuleUpgradeScripts.mv rename vm/stdlib/compiled/12/stdlib/{084_SharedEd25519PublicKey.mv => 076_SharedEd25519PublicKey.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/077_NFTGallery.mv rename vm/stdlib/compiled/12/stdlib/{090_TransactionTimeout.mv => 077_TransactionTimeout.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/078_NFTGalleryScripts.mv create mode 100644 vm/stdlib/compiled/12/stdlib/078_TransactionManager.mv rename vm/stdlib/compiled/12/stdlib/{057_TransferScripts.mv => 079_TransferScripts.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{092_TreasuryScripts.mv => 080_TreasuryScripts.mv} (100%) create mode 100644 vm/stdlib/compiled/12/stdlib/081_Arith.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/081_PriceOracleScripts.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/082_Secp256k1.mv create mode 100644 vm/stdlib/compiled/12/stdlib/082_U256.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/083_Signature.mv rename vm/stdlib/compiled/12/stdlib/{094_YieldFarming.mv => 083_YieldFarming.mv} (100%) rename vm/stdlib/compiled/12/stdlib/{095_YieldFarmingV2.mv => 084_YieldFarmingV2.mv} (100%) delete mode 100644 vm/stdlib/compiled/12/stdlib/085_SimpleMap.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/086_StructuredHash.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/087_StarcoinVerifier.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/088_String.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/089_Table.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/091_TransactionManager.mv delete mode 100644 vm/stdlib/compiled/12/stdlib/093_U256.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/003_FromBCS.mv rename vm/stdlib/compiled/latest/stdlib/{004_MintScripts.mv => 003_MintScripts.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{005_SIP_2.mv => 004_SIP_2.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{006_SIP_3.mv => 005_SIP_3.mv} (100%) create mode 100644 vm/stdlib/compiled/latest/stdlib/006_SignedInteger64.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/007_SignedInteger64.mv rename vm/stdlib/compiled/{12/11-12/stdlib/008_Vector.mv => latest/stdlib/007_Vector.mv} (51%) rename vm/stdlib/compiled/latest/stdlib/{009_Errors.mv => 008_Errors.mv} (100%) create mode 100644 vm/stdlib/compiled/latest/stdlib/009_ACL.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/010_ACL.mv rename vm/stdlib/compiled/latest/stdlib/{011_Signer.mv => 010_Signer.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{012_Math.mv => 011_Math.mv} (100%) create mode 100644 vm/stdlib/compiled/latest/stdlib/012_BCS.mv rename vm/stdlib/compiled/latest/stdlib/{015_Event.mv => 013_Event.mv} (92%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/014_BCS.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/014_Token.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/015_CoreAddresses.mv rename vm/stdlib/compiled/latest/stdlib/{018_Timestamp.mv => 016_Timestamp.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/016_Token.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/017_CoreAddresses.mv rename vm/stdlib/compiled/latest/stdlib/{013_Option.mv => 017_Option.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{019_Config.mv => 018_Config.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{020_ChainId.mv => 019_ChainId.mv} (100%) rename vm/stdlib/compiled/{12/11-12/stdlib/021_VMConfig.mv => latest/stdlib/020_VMConfig.mv} (87%) rename vm/stdlib/compiled/latest/stdlib/{022_Version.mv => 021_Version.mv} (100%) rename vm/stdlib/compiled/{12/11-12/stdlib/023_PackageTxnManager.mv => latest/stdlib/022_PackageTxnManager.mv} (91%) rename vm/stdlib/compiled/latest/stdlib/{024_Treasury.mv => 023_Treasury.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{025_Dao.mv => 024_Dao.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{026_UpgradeModuleDaoProposal.mv => 025_UpgradeModuleDaoProposal.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{027_TransactionTimeoutConfig.mv => 026_TransactionTimeoutConfig.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{028_TransactionPublishOption.mv => 027_TransactionPublishOption.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{029_RewardConfig.mv => 028_RewardConfig.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{030_OnChainConfigDao.mv => 029_OnChainConfigDao.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{031_ModifyDaoConfigProposal.mv => 030_ModifyDaoConfigProposal.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{032_ConsensusConfig.mv => 031_ConsensusConfig.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{033_STC.mv => 032_STC.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{034_TransactionFee.mv => 033_TransactionFee.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{035_Hash.mv => 034_Hash.mv} (100%) rename vm/stdlib/compiled/{12/stdlib/036_Authenticator.mv => latest/stdlib/035_Authenticator.mv} (95%) create mode 100644 vm/stdlib/compiled/latest/stdlib/036_Account.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/037_Account.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/037_AccountScripts.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/038_AccountScripts.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/038_Block.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/039_Arith.mv rename vm/stdlib/compiled/latest/stdlib/{042_TreasuryWithdrawDaoProposal.mv => 039_TreasuryWithdrawDaoProposal.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{043_BlockReward.mv => 040_BlockReward.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/040_Ring.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/041_Block.mv rename vm/stdlib/compiled/latest/stdlib/{044_Collection.mv => 041_Collection.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{045_Collection2.mv => 042_Collection2.mv} (100%) create mode 100644 vm/stdlib/compiled/latest/stdlib/043_Compare.mv rename vm/stdlib/compiled/latest/stdlib/{047_ConsensusStrategy.mv => 044_ConsensusStrategy.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{048_DaoVoteScripts.mv => 045_DaoVoteScripts.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/046_Compare.mv rename vm/stdlib/compiled/latest/stdlib/{049_DummyToken.mv => 046_DummyToken.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{050_DummyTokenScripts.mv => 047_DummyTokenScripts.mv} (100%) create mode 100644 vm/stdlib/compiled/latest/stdlib/048_EVMAddress.mv rename vm/stdlib/compiled/latest/stdlib/{059_Epoch.mv => 049_Epoch.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{061_FixedPoint32.mv => 050_FixedPoint32.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/051_EVMAddress.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/051_FrozenConfig.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/052_FrozenConfigStrategy.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/052_TypeInfo.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/056_EasyGas.mv rename vm/stdlib/compiled/latest/stdlib/{063_STCUSDOracle.mv => 056_STCUSDOracle.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{064_Offer.mv => 057_Offer.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/058_EasyGasScript.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/058_NFT.mv rename vm/stdlib/compiled/latest/stdlib/{066_LanguageVersion.mv => 059_LanguageVersion.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/060_EventUtil.mv rename vm/stdlib/compiled/latest/stdlib/{067_MerkleProof.mv => 060_MerkleProof.mv} (100%) rename vm/stdlib/compiled/{12/stdlib/068_MerkleNFTDistributor.mv => latest/stdlib/061_MerkleNFTDistributor.mv} (98%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/062_GasSchedule.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/062_IdentifierNFT.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/063_GenesisNFT.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/064_StdlibUpgradeScripts.mv rename vm/stdlib/compiled/{12/11-12/stdlib/072_Genesis.mv => latest/stdlib/065_Genesis.mv} (78%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/065_NFT.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/066_GenesisNFTScripts.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/067_IdentifierNFTScripts.mv rename vm/stdlib/compiled/latest/stdlib/{075_MintDaoProposal.mv => 068_MintDaoProposal.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/069_IdentifierNFT.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/069_ModuleUpgradeScripts.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/070_GenesisNFT.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/070_NFTGallery.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/071_NFTGalleryScripts.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/071_StdlibUpgradeScripts.mv rename vm/stdlib/compiled/latest/stdlib/{079_OnChainConfigScripts.mv => 072_OnChainConfigScripts.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/073_GenesisNFTScripts.mv rename vm/stdlib/compiled/latest/stdlib/{080_PriceOracleAggregator.mv => 073_PriceOracleAggregator.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/074_IdentifierNFTScripts.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/074_PriceOracleScripts.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/075_Signature.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/076_ModuleUpgradeScripts.mv rename vm/stdlib/compiled/latest/stdlib/{084_SharedEd25519PublicKey.mv => 076_SharedEd25519PublicKey.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/077_NFTGallery.mv rename vm/stdlib/compiled/latest/stdlib/{090_TransactionTimeout.mv => 077_TransactionTimeout.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/078_NFTGalleryScripts.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/078_TransactionManager.mv rename vm/stdlib/compiled/latest/stdlib/{057_TransferScripts.mv => 079_TransferScripts.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{092_TreasuryScripts.mv => 080_TreasuryScripts.mv} (100%) create mode 100644 vm/stdlib/compiled/latest/stdlib/081_Arith.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/081_PriceOracleScripts.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/082_Secp256k1.mv create mode 100644 vm/stdlib/compiled/latest/stdlib/082_U256.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/083_Signature.mv rename vm/stdlib/compiled/latest/stdlib/{094_YieldFarming.mv => 083_YieldFarming.mv} (100%) rename vm/stdlib/compiled/latest/stdlib/{095_YieldFarmingV2.mv => 084_YieldFarmingV2.mv} (100%) delete mode 100644 vm/stdlib/compiled/latest/stdlib/085_SimpleMap.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/086_StructuredHash.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/087_StarcoinVerifier.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/088_String.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/089_Table.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/091_TransactionManager.mv delete mode 100644 vm/stdlib/compiled/latest/stdlib/093_U256.mv create mode 100644 vm/vm-runtime/src/force_upgrade_management.rs diff --git a/Cargo.lock b/Cargo.lock index d66092c080..305926dac3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2129,9 +2129,11 @@ dependencies = [ "rayon", "serde 1.0.152", "serde_json", + "starcoin-account", "starcoin-account-api", "starcoin-accumulator", "starcoin-chain", + "starcoin-cmd", "starcoin-config", "starcoin-consensus", "starcoin-crypto", @@ -2140,6 +2142,7 @@ dependencies = [ "starcoin-logger", "starcoin-resource-viewer", "starcoin-rpc-api", + "starcoin-state-api", "starcoin-state-tree", "starcoin-statedb", "starcoin-storage", @@ -9271,6 +9274,7 @@ dependencies = [ "starcoin-consensus", "starcoin-crypto", "starcoin-executor", + "starcoin-force-upgrade", "starcoin-genesis", "starcoin-logger", "starcoin-open-block", @@ -9282,6 +9286,7 @@ dependencies = [ "starcoin-time-service", "starcoin-transaction-builder", "starcoin-types", + "starcoin-vm-runtime", "starcoin-vm-types", "stdlib", "stest", @@ -9604,6 +9609,7 @@ dependencies = [ "starcoin-consensus", "starcoin-crypto", "starcoin-dev", + "starcoin-force-upgrade", "starcoin-logger", "starcoin-resource-viewer", "starcoin-state-api", @@ -9671,10 +9677,36 @@ dependencies = [ "tokio-executor 0.2.0-alpha.6", ] +[[package]] +name = "starcoin-force-upgrade" +version = "1.13.10" +dependencies = [ + "anyhow", + "async-trait", + "bcs-ext", + "futures 0.3.26", + "include_dir", + "parking_lot 0.12.1", + "starcoin-accumulator", + "starcoin-chain-api", + "starcoin-crypto", + "starcoin-genesis", + "starcoin-logger", + "starcoin-move-compiler", + "starcoin-state-api", + "starcoin-statedb", + "starcoin-storage", + "starcoin-types", + "starcoin-vm-runtime", + "starcoin-vm-types", + "stdlib", + "stest", +] + [[package]] name = "starcoin-framework" version = "11.0.0" -source = "git+https://github.com/starcoinorg/starcoin-framework?rev=345a3900a0064dc57a9560235bc72c12f03448b1#345a3900a0064dc57a9560235bc72c12f03448b1" +source = "git+https://github.com/starcoinorg/starcoin-framework?rev=1df759371941ab59cb2295542f7eafa85c4ef6fe#1df759371941ab59cb2295542f7eafa85c4ef6fe" dependencies = [ "anyhow", "include_dir", @@ -10254,12 +10286,15 @@ dependencies = [ "starcoin-chain-api", "starcoin-crypto", "starcoin-executor", + "starcoin-force-upgrade", "starcoin-genesis", "starcoin-logger", "starcoin-state-api", "starcoin-statedb", "starcoin-storage", "starcoin-types", + "starcoin-vm-runtime", + "starcoin-vm-types", "stest", ] @@ -11006,6 +11041,7 @@ version = "1.13.11" dependencies = [ "anyhow", "bcs-ext", + "hex", "move-core-types", "move-stdlib", "move-table-extension", diff --git a/Cargo.toml b/Cargo.toml index f78c22b3e9..dabb326153 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,6 +40,7 @@ members = [ "chain", "chain/api", "chain/open-block", + "chain/force-upgrade", "chain/mock", "chain/chain-notify", "chain/service", @@ -152,6 +153,7 @@ default-members = [ "chain", "chain/api", "chain/open-block", + "chain/force-upgrade", "chain/mock", "chain/chain-notify", "chain/service", @@ -442,7 +444,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 = "345a3900a0064dc57a9560235bc72c12f03448b1" } +starcoin-framework = { git = "https://github.com/starcoinorg/starcoin-framework", rev = "1df759371941ab59cb2295542f7eafa85c4ef6fe" } starcoin-genesis = { path = "genesis" } starcoin-logger = { path = "commons/logger" } starcoin-metrics = { path = "commons/metrics" } @@ -460,6 +462,7 @@ starcoin-network-rpc-api = { path = "network-rpc/api" } starcoin-node = { path = "node" } starcoin-node-api = { path = "node/api" } starcoin-open-block = { path = "chain/open-block" } +starcoin-force-upgrade = { path = "chain/force-upgrade" } starcoin-resource-viewer = { path = "vm/resource-viewer" } starcoin-rpc-api = { path = "rpc/api" } starcoin-rpc-client = { path = "rpc/client" } diff --git a/chain/Cargo.toml b/chain/Cargo.toml index 70c841f84e..e9213d3f35 100644 --- a/chain/Cargo.toml +++ b/chain/Cargo.toml @@ -21,6 +21,8 @@ starcoin-statedb = { workspace = true } starcoin-time-service = { workspace = true } starcoin-types = { package = "starcoin-types", workspace = true } starcoin-vm-types = { workspace = true } +starcoin-vm-runtime = { workspace = true } +starcoin-force-upgrade = { workspace = true } starcoin-storage = { workspace = true } thiserror = { workspace = true } once_cell = { workspace = true } @@ -41,6 +43,7 @@ stdlib = { workspace = true } stest = { workspace = true } test-helper = { workspace = true } tokio = { features = ["full"], workspace = true } +starcoin-force-upgrade = { workspace = true } [features] default = [] diff --git a/chain/force-upgrade/Cargo.toml b/chain/force-upgrade/Cargo.toml new file mode 100644 index 0000000000..5f6b1ef073 --- /dev/null +++ b/chain/force-upgrade/Cargo.toml @@ -0,0 +1,35 @@ +[package] +authors = { workspace = true } +edition = { workspace = true } +license = { workspace = true } +name = "starcoin-force-upgrade" +publish = { workspace = true } +version = "1.13.10" +homepage = { workspace = true } +repository = { workspace = true } +rust-version = { workspace = true } + + +[dependencies] +anyhow = { workspace = true } +async-trait = { workspace = true } +bcs-ext = { package = "bcs-ext", workspace = true } +starcoin-crypto = { workspace = true } +futures = { workspace = true } +starcoin-logger = { workspace = true } +parking_lot = { workspace = true } +starcoin-accumulator = { workspace = true } +starcoin-chain-api = { workspace = true } +starcoin-state-api = { workspace = true } +starcoin-statedb = { workspace = true } +starcoin-storage = { workspace = true } +starcoin-types = { workspace = true } +starcoin-vm-types = { workspace = true } +starcoin-vm-runtime = { workspace = true } +starcoin-move-compiler = { workspace = true } +stdlib = { workspace = true } +include_dir = { workspace = true } + +[dev-dependencies] +starcoin-genesis = { workspace = true } +stest = { workspace = true } diff --git a/chain/force-upgrade/src/lib.rs b/chain/force-upgrade/src/lib.rs new file mode 100644 index 0000000000..5157b67297 --- /dev/null +++ b/chain/force-upgrade/src/lib.rs @@ -0,0 +1,63 @@ +// Copyright (c) The Starcoin Core Contributors +// SPDX-License-Identifier: Apache-2 + +use anyhow::format_err; +use starcoin_types::account::DEFAULT_EXPIRATION_TIME; +use starcoin_types::identifier::Identifier; +use starcoin_types::language_storage::ModuleId; +use starcoin_types::{ + account::{Account, DEFAULT_MAX_GAS_AMOUNT}, + transaction::SignedUserTransaction, +}; +use starcoin_vm_types::account_config::core_code_address; +use starcoin_vm_types::transaction::ScriptFunction; +use starcoin_vm_types::{ + account_config::STC_TOKEN_CODE_STR, + genesis_config::ChainId, + transaction::{Package, RawUserTransaction, TransactionPayload}, +}; +use stdlib::COMPILED_MOVE_CODE_DIR; + +pub struct ForceUpgrade; + +impl ForceUpgrade { + // block_timestamp: *NOTE* by seconds, + pub fn force_deploy_txn( + account: Account, + sequence_number: u64, + block_timestamp_in_secs: u64, + chain_id: &ChainId, + ) -> anyhow::Result { + let package_file = "12/11-12/stdlib.blob".to_string(); + let package = COMPILED_MOVE_CODE_DIR + .get_file(package_file.clone()) + .map(|file| { + bcs_ext::from_bytes::(file.contents()) + .expect("Decode package should success") + }) + .ok_or_else(|| format_err!("Can not find upgrade package {}", package_file))?; + + let init_script = ScriptFunction::new( + ModuleId::new( + core_code_address(), + Identifier::new("StdlibUpgradeScripts").unwrap(), + ), + Identifier::new("upgrade_from_v11_to_v12").unwrap(), + vec![], + vec![], + ); + + assert_eq!(package.init_script().unwrap(), &init_script); + + Ok(account.sign_txn(RawUserTransaction::new( + *account.address(), + sequence_number, + TransactionPayload::Package(package), + DEFAULT_MAX_GAS_AMOUNT, + 1, + block_timestamp_in_secs + DEFAULT_EXPIRATION_TIME, + *chain_id, + STC_TOKEN_CODE_STR.to_string(), + ))) + } +} diff --git a/chain/open-block/Cargo.toml b/chain/open-block/Cargo.toml index ece3fc2770..7b211b4bf8 100644 --- a/chain/open-block/Cargo.toml +++ b/chain/open-block/Cargo.toml @@ -13,6 +13,9 @@ starcoin-state-api = { workspace = true } starcoin-statedb = { workspace = true } starcoin-storage = { workspace = true } starcoin-types = { workspace = true } +starcoin-vm-types = { workspace = true } +starcoin-vm-runtime = { workspace = true } +starcoin-force-upgrade = { workspace = true } [dev-dependencies] starcoin-genesis = { workspace = true } diff --git a/chain/open-block/src/lib.rs b/chain/open-block/src/lib.rs index 54104c4440..86d27b11dd 100644 --- a/chain/open-block/src/lib.rs +++ b/chain/open-block/src/lib.rs @@ -6,12 +6,15 @@ use starcoin_accumulator::{node::AccumulatorStoreType, Accumulator, MerkleAccumu use starcoin_chain_api::ExcludedTxns; use starcoin_crypto::HashValue; use starcoin_executor::{execute_block_transactions, execute_transactions, VMMetrics}; +use starcoin_force_upgrade::ForceUpgrade; use starcoin_logger::prelude::*; use starcoin_state_api::{ChainStateReader, ChainStateWriter}; use starcoin_statedb::ChainStateDB; use starcoin_storage::Store; +use starcoin_types::account::DEFAULT_EXPIRATION_TIME; use starcoin_types::block::BlockNumber; use starcoin_types::genesis_config::{ChainId, ConsensusStrategy}; +use starcoin_types::identifier::Identifier; use starcoin_types::vm_error::KeptVMStatus; use starcoin_types::{ account_address::AccountAddress, @@ -23,6 +26,15 @@ use starcoin_types::{ }, U256, }; +use starcoin_vm_runtime::force_upgrade_management::{ + get_force_upgrade_account, get_force_upgrade_block_number, +}; +use starcoin_vm_types::access_path::AccessPath; +use starcoin_vm_types::account_config::{genesis_address, ModuleUpgradeStrategy}; +use starcoin_vm_types::move_resource::MoveResource; +use starcoin_vm_types::on_chain_config; +use starcoin_vm_types::state_store::state_key::StateKey; +use starcoin_vm_types::state_view::{StateReaderExt, StateView}; use std::{convert::TryInto, sync::Arc}; pub struct OpenedBlock { @@ -77,11 +89,11 @@ impl OpenedBlock { chain_id, previous_header.gas_used(), ); + let mut opened_block = Self { previous_block_info: block_info, block_meta, gas_limit: block_gas_limit, - state: chain_state, txn_accumulator, gas_used: 0, @@ -92,6 +104,7 @@ impl OpenedBlock { strategy, vm_metrics, }; + opened_block.initialize()?; Ok(opened_block) } @@ -131,6 +144,10 @@ impl OpenedBlock { &self.state } + pub fn chain_id(&self) -> ChainId { + self.chain_id + } + /// Try to add `user_txns` into this block. /// Return any txns not included, either txn is discarded, or block gas limit is reached. /// If error occurs during the processing, the `open_block` should be dropped, @@ -198,6 +215,10 @@ impl OpenedBlock { } }; } + + self.execute_extra_txn() + .expect("Extra txn must be executed successfully"); + Ok(ExcludedTxns { discarded_txns: discard_txns, untouched_txns: untouched_user_txns, @@ -241,6 +262,15 @@ impl OpenedBlock { &mut self, txn_hash: HashValue, output: TransactionOutput, + ) -> Result<(HashValue, HashValue)> { + self.push_txn_and_state_opt(txn_hash, output, false) + } + + fn push_txn_and_state_opt( + &mut self, + txn_hash: HashValue, + output: TransactionOutput, + is_extra_txn: bool, ) -> Result<(HashValue, HashValue)> { // Ignore the newly created table_infos. // Because they are not needed to calculate state_root, or included to TransactionInfo. @@ -253,6 +283,18 @@ impl OpenedBlock { self.state .apply_write_set(write_set) .map_err(BlockExecutorError::BlockChainStateErr)?; + if is_extra_txn { + // update stdlib version to 12 directly + let version_path = on_chain_config::access_path_for_config( + genesis_address(), + Identifier::new("Version").unwrap(), + Identifier::new("Version").unwrap(), + vec![], + ); + let version = on_chain_config::Version { major: 12 }; + self.state + .set(&version_path, bcs_ext::to_bytes(&version)?)?; + } let txn_state_root = self .state .commit() @@ -262,7 +304,7 @@ impl OpenedBlock { txn_hash, txn_state_root, events.as_slice(), - gas_used, + if is_extra_txn { 0 } else { gas_used }, status, ); let accumulator_root = self.txn_accumulator.append(&[txn_info.id()])?; @@ -294,7 +336,75 @@ impl OpenedBlock { ); Ok(block_template) } + + /// The logic for handling the forced upgrade will be processed. + /// First, set the account policy in `0x1::PackageTxnManager` to 100, + /// Second, after the contract deployment is successful, revert it back. + fn execute_extra_txn(&mut self) -> Result<()> { + let extra_txn = + if self.block_meta.number() == get_force_upgrade_block_number(&self.chain_id) { + let account = get_force_upgrade_account(&self.chain_id)?; + let sequence_number = self.state.get_sequence_number(*account.address())?; + let extra_txn = ForceUpgrade::force_deploy_txn( + account, + sequence_number, + self.block_meta.timestamp() / 1000 + DEFAULT_EXPIRATION_TIME, + &self.chain_id, + )?; + info!("extra txn in opened block ({:?})", extra_txn.id()); + Transaction::UserTransaction(extra_txn) + } else { + return Ok(()); + }; + let extra_txn_hash = extra_txn.id(); + + let strategy_path = AccessPath::resource_access_path( + genesis_address(), + ModuleUpgradeStrategy::struct_tag(), + ); + + // retrieve old strategy value + let old_val = self + .state + .get_state_value(&StateKey::AccessPath(strategy_path.clone()))? + .expect("module upgrade strategy should exist"); + // Set strategy to 100 to execute force-deploy-txn directly + self.state.set(&strategy_path, vec![100])?; + + // execute this special txn without gas limit + let mut results = execute_transactions( + &self.state, + vec![extra_txn.clone()], + self.vm_metrics.clone(), + ) + .map_err(BlockExecutorError::BlockTransactionExecuteErr)?; + + // Restore the old value + self.state.set(&strategy_path, old_val)?; + + let output = results.pop().expect("executed txn should has output"); + match output.status() { + TransactionStatus::Discard(status) => { + bail!( + "extra txn {:?} is discarded, vm status: {:?}", + extra_txn, + status + ); + } + TransactionStatus::Keep(_) => { + // Do not add extra_txn to included_user_txns + // treat it like BlockMeta txn + let _ = self.push_txn_and_state_opt(extra_txn_hash, output, true)?; + } + TransactionStatus::Retry => { + bail!("extra txn {:?} is impossible to retry", extra_txn); + } + }; + + Ok(()) + } } + pub struct AddressFilter; //static BLACKLIST: [&str; 0] = []; impl AddressFilter { diff --git a/chain/src/chain.rs b/chain/src/chain.rs index 255950d219..2d3162ccf6 100644 --- a/chain/src/chain.rs +++ b/chain/src/chain.rs @@ -36,9 +36,10 @@ use starcoin_types::{ transaction::{SignedUserTransaction, Transaction}, U256, }; +use starcoin_vm_runtime::force_upgrade_management::get_force_upgrade_block_number; use starcoin_vm_types::access_path::AccessPath; use starcoin_vm_types::account_config::genesis_address; -use starcoin_vm_types::genesis_config::ConsensusStrategy; +use starcoin_vm_types::genesis_config::{ChainId, ConsensusStrategy}; use starcoin_vm_types::on_chain_resource::Epoch; use std::cmp::min; use std::iter::Extend; @@ -671,6 +672,7 @@ impl BlockChain { let block_accumulator = MerkleAccumulator::new_empty( storage.get_accumulator_store(AccumulatorStoreType::Block), ); + let chain_id = genesis_block.header().chain_id(); let statedb = ChainStateDB::new(storage.clone().into_super_arc(), None); let executed_block = Self::execute_block_and_save( storage.as_ref(), @@ -680,6 +682,7 @@ impl BlockChain { &genesis_epoch, None, genesis_block, + &chain_id, None, )?; Self::new(time_service, executed_block.block.id(), storage, None) @@ -896,6 +899,7 @@ impl BlockChain { epoch: &Epoch, parent_status: Option, block: Block, + chain_id: &ChainId, vm_metrics: Option, ) -> Result { let header = block.header(); @@ -948,7 +952,13 @@ impl BlockChain { verify_block!( VerifyBlockField::State, - vec_transaction_info.len() == transactions.len(), + { + if header.number() == get_force_upgrade_block_number(chain_id) { + vec_transaction_info.len() == transactions.len().checked_add(1).unwrap() + } else { + vec_transaction_info.len() == transactions.len() + } + }, "invalid txn num in the block" ); @@ -1580,6 +1590,7 @@ impl ChainReader for BlockChain { &self.epoch, Some(self.status.status.clone()), verified_block.0, + &self.info().chain_id(), self.vm_metrics.clone(), ) } diff --git a/chain/tests/test_force_upgrade.rs b/chain/tests/test_force_upgrade.rs new file mode 100644 index 0000000000..b34b3052e2 --- /dev/null +++ b/chain/tests/test_force_upgrade.rs @@ -0,0 +1,210 @@ +use anyhow::format_err; +use starcoin_accumulator::Accumulator; +use starcoin_chain_api::{ChainReader, ChainWriter}; +use starcoin_config::NodeConfig; +use starcoin_consensus::Consensus; +use starcoin_statedb::ChainStateDB; +use starcoin_transaction_builder::{build_transfer_from_association, DEFAULT_EXPIRATION_TIME}; +use starcoin_types::account_address::AccountAddress; +use starcoin_vm_runtime::force_upgrade_management::get_force_upgrade_block_number; +use starcoin_vm_types::on_chain_config::Version; +use starcoin_vm_types::{account_config, state_view::StateReaderExt}; +use std::str::FromStr; +use std::sync::Arc; +use test_helper::executor::get_balance; + +#[stest::test] +pub fn test_force_upgrade_1() -> anyhow::Result<()> { + let config = Arc::new(NodeConfig::random_for_test()); + + let force_upgrade_height = get_force_upgrade_block_number(&config.net().chain_id()); + assert!(force_upgrade_height >= 2); + let initial_blocks = force_upgrade_height - 2; + + let mut miner = test_helper::gen_blockchain_with_blocks_for_test(initial_blocks, config.net())?; + let block_gas_limit = 10000000; + let initial_balance = 1000000000000; + let account_reader = miner.chain_state_reader(); + let association_sequence_num = + account_reader.get_sequence_number(account_config::association_address())?; + let miner_db = miner.chain_state(); + + let current_version = get_stdlib_version(miner_db)?; + assert_eq!(current_version, 11); + + // 1 genesis meta + INITIAL_BLOCKS block meta + let mut txns_num = initial_blocks + 1; + assert_eq!(miner.get_txn_accumulator().num_leaves(), txns_num); + + // create two txns to deposit some tokens to two black addresses + // and a third random address which should not in black address list. + let (black1, txn1, black2, txn2, rand3, txn3) = { + let receiver1 = AccountAddress::from_str("0xd0c5a06ae6100ce115cad1600fe59e96").unwrap(); + let txn1 = build_transfer_from_association( + receiver1, + association_sequence_num, + initial_balance + 1, + config.net().time_service().now_secs() + DEFAULT_EXPIRATION_TIME, + config.net(), + ) + .try_into()?; + + let receiver2 = AccountAddress::from_str("0x1af80d10cb642adcd9f7fee1420104ec").unwrap(); + let txn2 = build_transfer_from_association( + receiver2, + association_sequence_num + 1, + initial_balance + 2, + config.net().time_service().now_secs() + DEFAULT_EXPIRATION_TIME, + config.net(), + ) + .try_into()?; + + let rand3 = AccountAddress::random(); + let txn3 = build_transfer_from_association( + rand3, + association_sequence_num + 2, + initial_balance + 3, + config.net().time_service().now_secs() + DEFAULT_EXPIRATION_TIME, + config.net(), + ) + .try_into()?; + + (receiver1, txn1, receiver2, txn2, rand3, txn3) + }; + + // block number 1: deposit some stc tokens to two black addresses + { + let (block_template, _excluded) = miner + .create_block_template( + account_config::association_address(), + None, + vec![txn1, txn2, txn3], + vec![], + Some(block_gas_limit), + ) + .unwrap(); + + let block = miner + .consensus() + .create_block(block_template, miner.time_service().as_ref())?; + + miner.apply(block)?; + + // 1 meta + 3 user = 4 txns + txns_num += 4; + assert_eq!(miner.get_txn_accumulator().num_leaves(), txns_num); + + assert_eq!( + get_balance(black1, miner.chain_state()), + initial_balance + 1 + ); + assert_eq!( + get_balance(black2, miner.chain_state()), + initial_balance + 2 + ); + assert_eq!(get_balance(rand3, miner.chain_state()), initial_balance + 3); + } + + // fork a new chain, to apply block number 2 + let mut chain_to_apply = miner.fork(miner.current_header().id()).unwrap(); + + // create block number 2, then apply it to miner + let block_num_2 = { + let (block_template, _excluded) = miner + .create_block_template( + account_config::association_address(), + None, + vec![], + vec![], + Some(block_gas_limit), + ) + .unwrap(); + + let block2 = miner + .consensus() + .create_block(block_template, miner.time_service().as_ref())?; + + miner.apply(block2.clone())?; + + // 1 meta + 1 extra = 2 txns + let txns_num = txns_num + 2; + assert_eq!(miner.get_txn_accumulator().num_leaves(), txns_num); + + assert_eq!( + get_balance(black1, miner.chain_state()), + 0, + "Upgrade Failed, Balance of black list account not 0" + ); + + assert_eq!( + get_balance(black2, miner.chain_state()), + 0, + "Upgrade Failed, Balance of black list account not 0" + ); + + assert_eq!(get_balance(rand3, miner.chain_state()), initial_balance + 3); + + block2 + }; + + // apply block number 2 to another chain + { + // !!!non-zero balance + assert_ne!(get_balance(black1, chain_to_apply.chain_state()), 0); + assert_ne!(get_balance(black2, chain_to_apply.chain_state()), 0); + assert_ne!(get_balance(rand3, chain_to_apply.chain_state()), 0); + + chain_to_apply.apply(block_num_2)?; + + // 1 meta + 1 extra = 2 txns + let txns_num = txns_num + 2; + assert_eq!(chain_to_apply.get_txn_accumulator().num_leaves(), txns_num); + + assert_eq!(get_balance(black1, chain_to_apply.chain_state()), 0); + assert_eq!(get_balance(black2, chain_to_apply.chain_state()), 0); + assert_eq!( + get_balance(rand3, chain_to_apply.chain_state()), + initial_balance + 3 + ); + } + + // Check on chain config for v12 + let upgraded_version = get_stdlib_version(chain_to_apply.chain_state())?; + assert_eq!(upgraded_version, 12); + + Ok(()) +} + +#[stest::test] +fn test_force_upgrade_2() -> anyhow::Result<()> { + let config = Arc::new(NodeConfig::random_for_test()); + + let force_upgrade_height = get_force_upgrade_block_number(&config.net().chain_id()); + assert!(force_upgrade_height >= 2); + + let chain = + test_helper::gen_blockchain_with_blocks_for_test(force_upgrade_height, config.net())?; + + // genesis 1 + 1meta in each blocks + special block 1meta+1extra.txn + assert_eq!( + chain.get_txn_accumulator().num_leaves(), + force_upgrade_height + 2 + ); + + let chain = + test_helper::gen_blockchain_with_blocks_for_test(force_upgrade_height + 1, config.net())?; + // genesis 1 + 1meta in each blocks + special block 2 + 1 meta in last block + assert_eq!( + chain.get_txn_accumulator().num_leaves(), + force_upgrade_height + 3 + ); + + Ok(()) +} + +fn get_stdlib_version(chain_state_db: &ChainStateDB) -> anyhow::Result { + chain_state_db + .get_on_chain_config::()? + .map(|version| version.major) + .ok_or_else(|| format_err!("on chain config stdlib version can not be empty.")) +} diff --git a/cmd/db-exporter/Cargo.toml b/cmd/db-exporter/Cargo.toml index 18861a2763..2bff6ed903 100644 --- a/cmd/db-exporter/Cargo.toml +++ b/cmd/db-exporter/Cargo.toml @@ -16,26 +16,30 @@ serde_json = { features = ["arbitrary_precision"], workspace = true } tokio = { features = ["full"], workspace = true } move-binary-format = { workspace = true } move-bytecode-verifier = { workspace = true } +starcoin-account = { workspace = true } starcoin-account-api = { workspace = true } starcoin-accumulator = { package = "starcoin-accumulator", workspace = true } starcoin-chain = { workspace = true } +starcoin-cmd = { workspace = true } starcoin-config = { workspace = true } starcoin-consensus = { workspace = true } starcoin-crypto = { workspace = true } starcoin-executor = { workspace = true } starcoin-genesis = { workspace = true } starcoin-resource-viewer = { workspace = true } +starcoin-rpc-api = { workspace = true } starcoin-state-tree = { workspace = true } starcoin-statedb = { workspace = true } starcoin-storage = { workspace = true } +starcoin-state-api = { workspace = true } starcoin-transaction-builder = { workspace = true } starcoin-types = { workspace = true } starcoin-vm-types = { workspace = true } starcoin-vm-runtime = { workspace = true } +# network-p2p-types = { workspace = true } futures = { workspace = true } rayon = { workspace = true } num_cpus = { workspace = true } -starcoin-rpc-api = { workspace = true } [package] authors = { workspace = true } diff --git a/cmd/db-exporter/src/force_deploy_output.rs b/cmd/db-exporter/src/force_deploy_output.rs new file mode 100644 index 0000000000..1c3af409da --- /dev/null +++ b/cmd/db-exporter/src/force_deploy_output.rs @@ -0,0 +1,159 @@ +// Copyright (c) The Starcoin Core Contributors +// SPDX-License-Identifier: Apache-2.0 + +use std::fmt::Debug; +use std::path::PathBuf; +use std::sync::Arc; + +use anyhow::format_err; +use clap::Parser; +use starcoin_chain::{BlockChain, ChainReader, ChainWriter}; +use starcoin_cmd::dev::dev_helper; +use starcoin_config::{BuiltinNetworkID, ChainNetwork}; +use starcoin_genesis::Genesis; +use starcoin_state_api::ChainStateWriter; +use starcoin_statedb::ChainStateDB; +use starcoin_storage::{ + cache_storage::CacheStorage, db_storage::DBStorage, storage::StorageInstance, Storage, + StorageVersion, +}; +use starcoin_transaction_builder::DEFAULT_MAX_GAS_AMOUNT; +use starcoin_types::account::DEFAULT_EXPIRATION_TIME; +use starcoin_types::{account::Account, block::BlockNumber}; +use starcoin_vm_types::{ + access_path::AccessPath, + account_config::{genesis_address, ModuleUpgradeStrategy, STC_TOKEN_CODE_STR}, + genesis_config::ChainId, + move_resource::MoveResource, + state_store::state_key::StateKey, + state_view::StateView, + transaction::{RawUserTransaction, Transaction, TransactionPayload}, +}; + +#[derive(Debug, Parser)] +#[clap( + name = "force-deploy", + about = "Force deploy output with ignore account upgrade strategy" +)] +pub struct ForceDeployOutput { + #[clap(long, short = 'n')] + /// Chain Network, like main, proxima + pub net: BuiltinNetworkID, + + #[clap(long, short = 'i', parse(from_os_str))] + /// starcoin node db path. like ~/.starcoin/barnard/starcoindb/db/starcoindb + pub input_path: PathBuf, + + #[clap(long, short = 'p', parse(from_os_str))] + /// Package path which + pub package_path: PathBuf, + + #[clap(long, short = 's')] + pub block_num: BlockNumber, +} + +pub fn force_deploy_output( + network_path: PathBuf, + package_path: PathBuf, + network: BuiltinNetworkID, + block_number: BlockNumber, +) -> anyhow::Result<()> { + ::starcoin_logger::init(); + let net = ChainNetwork::new_builtin(network); + let db_storage = DBStorage::open_with_cfs( + network_path.join("starcoindb/db/starcoindb"), + StorageVersion::current_version() + .get_column_family_names() + .to_vec(), + true, + Default::default(), + None, + )?; + let storage = Arc::new(Storage::new(StorageInstance::new_cache_and_db_instance( + CacheStorage::new(None), + db_storage, + ))?); + let (chain_info, _) = + Genesis::init_and_check_storage(&net, storage.clone(), network_path.as_ref())?; + let chain = BlockChain::new( + net.time_service(), + chain_info.head().id(), + storage.clone(), + None, + ) + .expect("create block chain should success."); + + let block = chain + .get_block_by_number(block_number)? + .ok_or_else(|| format_err!("{} get block error", block_number))?; + + // BlockChain::set_output_block(); + let mut chain = BlockChain::new( + net.time_service(), + block.header.parent_hash(), + storage, + None, + ) + .expect("create block chain should success."); + + // Write upgrade strategy resource to 0 + let upgrade_strategy_path = + AccessPath::resource_access_path(genesis_address(), ModuleUpgradeStrategy::struct_tag()); + + let statedb = chain.chain_state(); + + let before_ret = statedb + .get_state_value(&StateKey::AccessPath(upgrade_strategy_path.clone()))? + .unwrap(); + assert_eq!(before_ret[0], 1, "Checking the strategy not 1"); + + statedb + .set(&upgrade_strategy_path, vec![0]) + .expect("Add resource failed"); + + // Check state is OK + let after_ret = statedb + .get_state_value(&StateKey::AccessPath(upgrade_strategy_path))? + .unwrap(); + assert_eq!(after_ret[0], 0, "Set to upgrade strategy failed!"); + + let account = Account::new_association(); + deploy_package( + network.chain_id(), + package_path, + chain.chain_state(), + &account, + net.time_service().now_secs(), + )?; + + Ok(()) +} + +fn deploy_package( + chain_id: ChainId, + package_path: PathBuf, + statedb: &ChainStateDB, + account: &Account, + now_time_by_sec: u64, +) -> anyhow::Result<()> { + let package = dev_helper::load_package_from_file(&package_path)?; + let signed_transaction = account.sign_txn(RawUserTransaction::new( + *account.address(), + 0, + TransactionPayload::Package(package), + DEFAULT_MAX_GAS_AMOUNT, + 1, + now_time_by_sec + DEFAULT_EXPIRATION_TIME, + chain_id, + STC_TOKEN_CODE_STR.to_string(), + )); + let ret = starcoin_executor::execute_transactions( + statedb, + vec![Transaction::UserTransaction(signed_transaction)], + None, + ) + .expect("Failed to execute deploy transaction"); + assert_eq!(ret.len(), 1, "There is incorrect execution result"); + + Ok(()) +} diff --git a/cmd/db-exporter/src/lib.rs b/cmd/db-exporter/src/lib.rs index 99e57915f1..4f6c9ea8e4 100644 --- a/cmd/db-exporter/src/lib.rs +++ b/cmd/db-exporter/src/lib.rs @@ -2,5 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 pub mod cmd_batch_execution; +pub mod force_deploy_output; pub mod verify_header; pub mod verify_module; diff --git a/cmd/db-exporter/src/main.rs b/cmd/db-exporter/src/main.rs index 5b0aced7c6..1c4b68c484 100644 --- a/cmd/db-exporter/src/main.rs +++ b/cmd/db-exporter/src/main.rs @@ -5,6 +5,7 @@ use anyhow::{bail, format_err, Result}; use bcs_ext::{BCSCodec, Sample}; use clap::{IntoApp, Parser}; use csv::Writer; +use db_exporter::force_deploy_output::{force_deploy_output, ForceDeployOutput}; use db_exporter::{ verify_header::{verify_header_via_export_file, VerifyHeaderOptions}, verify_module::{verify_modules_via_export_file, VerifyModuleOptions}, @@ -244,6 +245,7 @@ enum Cmd { ApplyBlockOutput(ApplyBlockOutputOptions), SaveStartupInfo(SaveStartupInfoOptions), TokenSupply(TokenSupplyOptions), + ForceDeploy(ForceDeployOutput), } #[derive(Debug, Clone, Parser)] @@ -717,6 +719,14 @@ async fn main() -> anyhow::Result<()> { let result = apply_block_output(option.to_path, option.input_path, option.net); return result; } + Cmd::ForceDeploy(option) => { + return force_deploy_output( + option.input_path, + option.package_path, + option.net, + option.block_num, + ) + } Cmd::SaveStartupInfo(option) => { let result = save_startup_info(option.to_path, option.net, option.hash_value); return result; diff --git a/config/src/genesis_config.rs b/config/src/genesis_config.rs index f553cb5013..4a1d23d3cf 100644 --- a/config/src/genesis_config.rs +++ b/config/src/genesis_config.rs @@ -756,7 +756,7 @@ pub static G_TEST_CONFIG: Lazy = Lazy::new(|| { ), genesis_key_pair: Some((Arc::new(genesis_private_key), genesis_public_key)), time_service_type: TimeServiceType::MockTimeService, - stdlib_version: StdlibVersion::Latest, + stdlib_version: StdlibVersion::Version(11), dao_config: DaoConfig { voting_delay: 60_000, // 1min voting_period: 60 * 60 * 1000, // 1h @@ -774,6 +774,7 @@ pub static G_DEV_CONFIG: Lazy = Lazy::new(|| { let mut gas_constant = G_TEST_GAS_CONSTANTS.clone(); gas_constant.min_price_per_gas_unit = 1; + let stdlib_version = StdlibVersion::Version(11); GenesisConfig { genesis_block_parameter: GenesisBlockParameterConfig::Static(GenesisBlockParameter { parent_hash: HashValue::sha3_256_of(b"starcoin_dev"), @@ -808,7 +809,7 @@ pub static G_DEV_CONFIG: Lazy = Lazy::new(|| { ), genesis_key_pair: Some((Arc::new(genesis_private_key), genesis_public_key)), time_service_type: TimeServiceType::MockTimeService, - stdlib_version: StdlibVersion::Latest, + stdlib_version, dao_config: DaoConfig { voting_delay: 60_000, // 1min voting_period: 60 * 60 * 1000, // 1h @@ -824,16 +825,17 @@ pub static G_HALLEY_BOOT_NODES: Lazy> = Lazy::new(|| { }); pub static G_HALLEY_CONFIG: Lazy = Lazy::new(|| { - let stdlib_version = StdlibVersion::Latest; + // let stdlib_version = StdlibVersion::Latest; + let stdlib_version = StdlibVersion::Version(11); let association_public_key = "068b8493d8c533fd08568429274e49639518a8517f6ab03a0f0cc37edcbdfdd0071855fd941dbcefeb9e4da9f417c7b0f39f73226c9310d39881ae13b45017fa67cc9cb01386e9f5e321b078d4d3a2925b520f955cf7dfd9f6891de366c186ce6ec4a3d5a1c6c795126e5ee1222e23f9a28266c07ecce3e2cd19c6e123b465c091bc45a1fa7f778c66c37af15f3e81ff511e69ff0481bcfaab7b4673f469a3d29760cacf5dd0105a541b5f50720b9577a4c3ff7475554afedbf6a884777f9db4c461fe9aca18df90ed31ee967fe49ed47756311eaa2a6042b7aff1422e48643dc7a0004e0ca3e6b8e548c80d76eeb88e84a82f6b863a1346eabadfe4d5d9be86f98fa72c63f1e1a3f193d4ff71e10dbf364200b221e1a7f71cfab55cc7f7ad2a05"; let mut gas_constant = G_TEST_GAS_CONSTANTS.clone(); - gas_constant.min_price_per_gas_unit = 1; // to keep the same as framework config + gas_constant.min_price_per_gas_unit = 1; GenesisConfig { genesis_block_parameter: GenesisBlockParameterConfig::Static(GenesisBlockParameter { parent_hash: HashValue::sha3_256_of(b"starcoin_halley"), - timestamp: 1693798675000, + timestamp: 1713105562000, difficulty: 100.into(), }), version: Version { major: 1 }, @@ -882,6 +884,7 @@ pub static G_PROXIMA_BOOT_NODES: Lazy> = Lazy::new(|| { }); pub static G_PROXIMA_CONFIG: Lazy = Lazy::new(|| { + // let stdlib_version = StdlibVersion::Latest; let stdlib_version = StdlibVersion::Version(11); let association_public_key = "068b8493d8c533fd08568429274e49639518a8517f6ab03a0f0cc37edcbdfdd0071855fd941dbcefeb9e4da9f417c7b0f39f73226c9310d39881ae13b45017fa67cc9cb01386e9f5e321b078d4d3a2925b520f955cf7dfd9f6891de366c186ce6ec4a3d5a1c6c795126e5ee1222e23f9a28266c07ecce3e2cd19c6e123b465c091bc45a1fa7f778c66c37af15f3e81ff511e69ff0481bcfaab7b4673f469a3d29760cacf5dd0105a541b5f50720b9577a4c3ff7475554afedbf6a884777f9db4c461fe9aca18df90ed31ee967fe49ed47756311eaa2a6042b7aff1422e48643dc7a0004e0ca3e6b8e548c80d76eeb88e84a82f6b863a1346eabadfe4d5d9be86f98fa72c63f1e1a3f193d4ff71e10dbf364200b221e1a7f71cfab55cc7f7ad2a05"; GenesisConfig { diff --git a/executor/Cargo.toml b/executor/Cargo.toml index 7bc8707a48..2fb1c75a67 100644 --- a/executor/Cargo.toml +++ b/executor/Cargo.toml @@ -8,7 +8,9 @@ starcoin-types = { workspace = true } starcoin-vm-types = { workspace = true } starcoin-vm-runtime = { workspace = true } starcoin-statedb = { workspace = true } +starcoin-force-upgrade = { workspace = true } serde = { default-features = false, workspace = true } +bcs-ext = { workspace = true } [dev-dependencies] bcs-ext = { package = "bcs-ext", workspace = true } @@ -26,6 +28,7 @@ starcoin-transaction-builder = { workspace = true } starcoin-state-tree = { workspace = true } starcoin-statedb = { workspace = true } starcoin-vm-runtime = { workspace = true } +starcoin-force-upgrade = { workspace = true } stdlib = { package = "stdlib", workspace = true } stest = { workspace = true } tempfile = { workspace = true } diff --git a/executor/src/block_executor.rs b/executor/src/block_executor.rs index e7b46165d4..782c319af5 100644 --- a/executor/src/block_executor.rs +++ b/executor/src/block_executor.rs @@ -1,16 +1,31 @@ // Copyright (c) The Starcoin Core Contributors // SPDX-License-Identifier: Apache-2.0 +use crate::{execute_block_transactions, execute_transactions}; +use anyhow::bail; +use log::info; use serde::{Deserialize, Serialize}; use starcoin_crypto::HashValue; +use starcoin_force_upgrade::ForceUpgrade; use starcoin_state_api::{ChainStateReader, ChainStateWriter}; +use starcoin_types::account::DEFAULT_EXPIRATION_TIME; use starcoin_types::error::BlockExecutorError; use starcoin_types::error::ExecutorResult; +use starcoin_types::identifier::Identifier; use starcoin_types::transaction::TransactionStatus; use starcoin_types::transaction::{Transaction, TransactionInfo}; +use starcoin_vm_runtime::force_upgrade_management::{ + get_force_upgrade_account, get_force_upgrade_block_number, +}; use starcoin_vm_runtime::metrics::VMMetrics; +use starcoin_vm_types::access_path::AccessPath; +use starcoin_vm_types::account_config::{genesis_address, ModuleUpgradeStrategy}; use starcoin_vm_types::contract_event::ContractEvent; +use starcoin_vm_types::move_resource::MoveResource; +use starcoin_vm_types::on_chain_config; +use starcoin_vm_types::state_store::state_key::StateKey; use starcoin_vm_types::state_store::table::{TableHandle, TableInfo}; +use starcoin_vm_types::state_view::StateReaderExt; use starcoin_vm_types::write_set::WriteSet; use std::collections::BTreeMap; @@ -41,9 +56,13 @@ pub fn block_execute( block_gas_limit: u64, vm_metrics: Option, ) -> ExecutorResult { - let txn_outputs = - crate::execute_block_transactions(chain_state, txns.clone(), block_gas_limit, vm_metrics) - .map_err(BlockExecutorError::BlockTransactionExecuteErr)?; + let txn_outputs = execute_block_transactions( + chain_state, + txns.clone(), + block_gas_limit, + vm_metrics.clone(), + ) + .map_err(BlockExecutorError::BlockTransactionExecuteErr)?; let mut executed_data = BlockExecutedData::default(); for (txn, output) in txns @@ -85,6 +104,108 @@ pub fn block_execute( }; } + if let Some(extra_txn) = create_force_upgrade_extra_txn(chain_state) + .map_err(BlockExecutorError::BlockChainStateErr)? + { + // !!! commit suicide if any error or exception happens !!! + execute_extra_txn(chain_state, extra_txn, vm_metrics, &mut executed_data) + .expect("extra txn must be executed successfully"); + } + executed_data.state_root = chain_state.state_root(); Ok(executed_data) } + +fn create_force_upgrade_extra_txn( + statedb: &S, +) -> anyhow::Result> { + let chain_id = statedb.get_chain_id()?; + let block_timestamp = statedb.get_timestamp()?.seconds(); + let block_number = statedb.get_block_metadata()?.number; + Ok( + if block_number == get_force_upgrade_block_number(&chain_id) { + let account = get_force_upgrade_account(&chain_id)?; + let sequence_number = statedb.get_sequence_number(*account.address())?; + let extra_txn = ForceUpgrade::force_deploy_txn( + account, + sequence_number, + block_timestamp + DEFAULT_EXPIRATION_TIME, + &chain_id, + )?; + info!("extra txn to execute ({:?})", extra_txn.id()); + Some(Transaction::UserTransaction(extra_txn)) + } else { + None + }, + ) +} + +// todo: check the execute_extra_txn in OpenedBlock, and merge with it +fn execute_extra_txn( + chain_state: &S, + txn: Transaction, + vm_metrics: Option, + executed_data: &mut BlockExecutedData, +) -> anyhow::Result<()> { + let txn_hash = txn.id(); + let strategy_path = + AccessPath::resource_access_path(genesis_address(), ModuleUpgradeStrategy::struct_tag()); + + // retrieve the original strategy value + let old_val = chain_state + .get_state_value(&StateKey::AccessPath(strategy_path.clone()))? + .expect("module upgrade strategy should exist"); + // Set strategy to 100 upgrade package directly + chain_state.set(&strategy_path, vec![100])?; + + let output = execute_transactions(&chain_state, vec![txn], vm_metrics)? + .pop() + .expect("extra txn must have output"); + + // restore strategy to old value + chain_state.set(&strategy_path, old_val)?; + + let (mut table_infos, write_set, events, _gas_used, status) = output.into_inner(); + match status { + TransactionStatus::Discard(status) => { + bail!("extra txn {txn_hash:?} is discarded: {status:?}"); + } + TransactionStatus::Keep(status) => { + chain_state + .apply_write_set(write_set.clone()) + .map_err(BlockExecutorError::BlockChainStateErr)?; + { + // update stdlib version to 12 directly + let version_path = on_chain_config::access_path_for_config( + genesis_address(), + Identifier::new("Version").unwrap(), + Identifier::new("Version").unwrap(), + vec![], + ); + let version = on_chain_config::Version { major: 12 }; + chain_state.set(&version_path, bcs_ext::to_bytes(&version)?)?; + } + + let txn_state_root = chain_state + .commit() + .map_err(BlockExecutorError::BlockChainStateErr)?; + executed_data.txn_infos.push(TransactionInfo::new( + txn_hash, + txn_state_root, + events.as_slice(), + // skip the gas_used + 0, + status, + )); + executed_data.txn_events.push(events); + // Merge more table_infos, and keep the latest TableInfo for a same TableHandle + executed_data.txn_table_infos.append(&mut table_infos); + executed_data.write_sets.push(write_set); + } + TransactionStatus::Retry => { + bail!("extra txn {txn_hash:?} must not to retry"); + } + } + + Ok(()) +} diff --git a/executor/tests/module_upgrade_test.rs b/executor/tests/module_upgrade_test.rs index c9d4e949b6..a53c07905f 100644 --- a/executor/tests/module_upgrade_test.rs +++ b/executor/tests/module_upgrade_test.rs @@ -215,7 +215,7 @@ fn test_stdlib_upgrade() -> Result<()> { &alice, &chain_state, &net, - vote_language_version(&net, 4), + vote_language_version(&net, 6), on_chain_config_type_tag(MoveLanguageVersion::type_tag()), execute_script_on_chain_config(&net, MoveLanguageVersion::type_tag(), proposal_id), proposal_id, diff --git a/genesis/generated/halley/genesis b/genesis/generated/halley/genesis index 0b31f956caae41e0547e5a3495ed8099a9ff3be7..f2366421ba800eb5836dec923460ca3b60bd7970 100644 GIT binary patch delta 38041 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 A#sB~S literal 116028 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 XdB5}f@%FxF5`S9wa{bYJ{n&p1BkQ{f diff --git a/genesis/generated/proxima/genesis b/genesis/generated/proxima/genesis index 9fe728663d48ec3eede8c95dd372da9f8391e28f..e4547c0e135d207e21a74b701d91e3c1ab8e46df 100644 GIT binary patch delta 201 zcmV;)05<>VxCQ9A1&~7^e>JtX1UJRko%mp4IiVlQz|5|;9d<(Rl}xEjR|ok6kz*nt zC{Oo$Mq_>uWH#xB9&U;Wkf=U}b7bmN~ZLLHlRb+Pz??zQd#hYJA)w{{Exu}?t*jY_bYVxCQ9A1&~7^C)!3$&|~*eccHmKZW3^)uJuNa30X*Okzz_!H|<1ukz*nt zK_49Kv=(gxk36Y_;YG z7yRste9>19cxHKNBkGJ0o0J+2=1N#d+rNR9O2PUAy_F4R!lOXtQ7)$gNnn$ga?%L^ DI}2Ke diff --git a/genesis/src/lib.rs b/genesis/src/lib.rs index f16dc6b0ed..c22090f371 100644 --- a/genesis/src/lib.rs +++ b/genesis/src/lib.rs @@ -576,11 +576,12 @@ mod tests { let epoch = account_state_reader.get_resource::(genesis_address())?; assert!(epoch.is_some(), "Epoch resource should exist."); - test_gas_schedule_in_genesis(net, &state_db)?; + // test_gas_schedule_in_genesis(net, &state_db)?; Ok(()) } + #[allow(dead_code)] fn test_gas_schedule_in_genesis(net: &ChainNetwork, state_db: &ChainStateDB) -> Result<()> { if net.is_custom() { return Ok(()); diff --git a/kube/manifest/starcoin-halley.yaml b/kube/manifest/starcoin-halley.yaml index 8c34ce657c..b2edb16c6d 100644 --- a/kube/manifest/starcoin-halley.yaml +++ b/kube/manifest/starcoin-halley.yaml @@ -23,7 +23,7 @@ spec: starcoin/node-pool: seed-pool containers: - name: starcoin - image: starcoin/starcoin:master + image: starcoin/starcoin:halley24_force_upgrade_v11 imagePullPolicy: Always command: - bash diff --git a/test-helper/src/dao.rs b/test-helper/src/dao.rs index f443106ca3..c050000003 100644 --- a/test-helper/src/dao.rs +++ b/test-helper/src/dao.rs @@ -119,7 +119,7 @@ pub fn txn_publish_config_type_tag() -> TypeTag { })) } -fn execute_create_account( +pub fn execute_create_account( chain_state: &ChainStateDB, net: &ChainNetwork, alice: &Account, diff --git a/test-helper/src/lib.rs b/test-helper/src/lib.rs index 847ae6d8c0..f58193d807 100644 --- a/test-helper/src/lib.rs +++ b/test-helper/src/lib.rs @@ -12,7 +12,7 @@ pub mod starcoin_dao; pub mod txn; pub mod txpool; -pub use chain::gen_blockchain_for_test; +pub use chain::{gen_blockchain_for_test, gen_blockchain_with_blocks_for_test}; pub use dummy_network_service::DummyNetworkService; pub use network::{build_network, build_network_cluster, build_network_pair}; pub use node::{run_node_by_config, run_test_node}; diff --git a/vm/e2e-tests/src/account_universe/bad_transaction.rs b/vm/e2e-tests/src/account_universe/bad_transaction.rs index c8671adabd..ab925bd484 100644 --- a/vm/e2e-tests/src/account_universe/bad_transaction.rs +++ b/vm/e2e-tests/src/account_universe/bad_transaction.rs @@ -124,6 +124,7 @@ pub struct InvalidAuthkeyGen { #[proptest( strategy = "starcoin_crypto::test_utils::uniform_keypair_strategy_with_perturbation(1)" )] + #[allow(unused)] new_keypair: KeyPair, } diff --git a/vm/stdlib/compiled/11/10-11/stdlib.blob b/vm/stdlib/compiled/11/10-11/stdlib.blob index 015be16a83fc0b082313e17edfbc2605a4806ed7..ff73914bcc9ba6448a4187ed1ec5b3e538112b8e 100644 GIT binary patch delta 389 zcmY+xTS${(90y>3|9zjXeL6Qm$gji2Fi$KPUT8#upi&nS5mCdmWI0rfd4fobfqEl? z7xRS%QBtjLA`JOauUkQM5#fQZJfM)G7o{j7R3w6jYoBK+VJ;<1Z`yIVPQMs3BK{Gv z)i!d}E0n6pMoiV>X6$!3=ABnlS@*PEh8JMKxMHyH{T<=e)C{=k+!yuG*{wX$0UmDj zgX`8Bc;1~9y1(BLR-KI)?0D_9IPUYC>QDJM9X*HJ;4jbM310lTB|24(icCiAIR{V0 z4}?DplSp)Rnp_$G0@|Pdy69W5g%cOvWpcLl4cJt(dzyA6=wMIVOJRNJu0yxvU{Cb_ zDy(JkadS}kDf|_>vKRp{@2O?*NpXXlT@P-Vdg~1C8=QP}S*W6eCz(H5o6b=_6BZ#&6)hwdoBTT3q%pjnW11UI0TlK=n! delta 389 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 WrFOhxt0pripP@DWy*v3|68{(b?)cCE delta 41746 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 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/007_SignedInteger64.mv b/vm/stdlib/compiled/12/11-12/stdlib/007_SignedInteger64.mv deleted file mode 100644 index e3b62651c1b9513b4d5267c90b85fc7f8a58080c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmZXQOHRWu5Qb;`iW{e;DuE)X*nlF~SKV;{)*K)T#6&@9Kxq=hak}CN?6?d|F2OiS z5f!#&&x}8N{+aFK+b94SAuz@SR~Pa+^lqN?J5K!%^ny?P!ts_1V!#7HnncpZoh6V1 zNTgfkT#q)!HK3*gkrvaS0S@l+thDKES=-E3tEHEuY22)qM-P=vY8yXR&+E8KUgI_? z8tbQdo2S+Rqs-QQ(BzxAv{_Q;tqs;qQRgqkn?t-!bMH>sy>&AG3|E!rvQsUuCOCyq zocllqhLJcly)_@rAYk&W3mceg=NcAp84bj-Be>xVsY)db7@YNOQ2v0NcE3}UcgO@N n1rs|PLPjb;`9qGA9jz$3Q#RhqCZk`Wi+!P&|Adk<*MIl{YMM33 diff --git a/vm/stdlib/compiled/12/stdlib/008_Vector.mv b/vm/stdlib/compiled/12/11-12/stdlib/007_Vector.mv similarity index 51% rename from vm/stdlib/compiled/12/stdlib/008_Vector.mv rename to vm/stdlib/compiled/12/11-12/stdlib/007_Vector.mv index fca0c13f9fa22089f35b632ccb13ea8f3c0c1427..6deae25d480ce720cc5ddcd8965f04d366c475b5 100644 GIT binary patch delta 132 zcmaFCd4@w{q0DP;HU>z@fX|f38fywU}y_f_QC-*Xm iPYz_VVicU*!*q-Vs849~US=jnRv|_v2I0v^SX2P6wHY-4 delta 283 zcmYL@zb*t}6vgkqZ~olxhS}Yj4Wb!Fb}7_ag+{4SZbT>uD1S)kRTA#HOdVp?iR=KH@;)?##uCBwNHL= z_3&tUHoQSEC_+vd#!z&Eg}xXy@ z$;`hUT^{T=kGPH9MrbGKExyyeo}el^T1NRUha*c=WWv)C(2)L&=0LM}ndmO7#P7o+mE= diff --git a/vm/stdlib/compiled/12/11-12/stdlib/009_Errors.mv b/vm/stdlib/compiled/12/11-12/stdlib/008_Errors.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/009_Errors.mv rename to vm/stdlib/compiled/12/11-12/stdlib/008_Errors.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/009_ACL.mv b/vm/stdlib/compiled/12/11-12/stdlib/009_ACL.mv new file mode 100644 index 0000000000000000000000000000000000000000..89c46c5234346fa17c1fddb58f7f4fff2d058370 GIT binary patch literal 470 zcmYjOJx|0i47Hs&Nt50eIyMG2Ha5_0fZ#S})~dSZPL=Lj)Rq&7nTbEZiuh&BO#A~} z(4n&w=h=Solb!dYuV4TmAQ&=Q`7?cCcz$l5m+lkC<{PK}g-rTNZ#ei+Bvb_P7C;FC zP2!jofI%&3mS(P}aH0^bE+AR`_Tg)Rs^qhVw+J^_;eDl)7{ zE-MLza;~m#&Ae&qrZsnQ(bbL0i(-_wZEU)1QCD4FR;}9sj+^`L$**FUZGYLOiJN*G z^}1}kaanEiby;M2vwGOXs&i#k#K){&%7FWZ%I!ksWYj++Og#7F+o^{U3^AqCKr=Yj zo<{-D!o;2gsRX=nghIq5NH8JI>?}%^`o$p!7|Zh+kZen4zWi4^0MdO*_lzmA;BdGv RhN;@A_5FU;)QqtIq94q6H2(kq literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/010_ACL.mv b/vm/stdlib/compiled/12/11-12/stdlib/010_ACL.mv deleted file mode 100644 index 773134f2eea099ed527223f864d498f52f79dc00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmYjNu};H447Gh{-{mgQ6qSvEjSUzprXpZtW?`tJCZI@df|5|d#s}~d{0^VMFCa1T z0XRjKYUzCTd%m;Y`#AcJ0ss*~NURCx_Ck1e=9+u|iJ5%iB>bSHzxa-OZ-#UfL9+ue zT7e}^Oa?&E4zRN93<4(J0|gfpa4|(-apHxX2L=+&i0A=@kx4=Vk^mYKHl&wRz@VPX zt6RBg+otX0u3Yp@Yx1HP3?Xv3ntg6@fvMT0z z`}n*n>)uy&QNGNZ2UW5gX#BP{UN!v(p$|Oh|;u&k*08L1CJu0gRz`MWg=b+ zp$=jawHcFT_70V$!6D=bnLeKasW&QgHkiJN10btVa=5zyQ?uPL{IS_!ri6q4f9r!V AbpQYW diff --git a/vm/stdlib/compiled/12/11-12/stdlib/011_Signer.mv b/vm/stdlib/compiled/12/11-12/stdlib/010_Signer.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/011_Signer.mv rename to vm/stdlib/compiled/12/11-12/stdlib/010_Signer.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/012_Math.mv b/vm/stdlib/compiled/12/11-12/stdlib/011_Math.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/012_Math.mv rename to vm/stdlib/compiled/12/11-12/stdlib/011_Math.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/012_BCS.mv b/vm/stdlib/compiled/12/11-12/stdlib/012_BCS.mv new file mode 100644 index 0000000000000000000000000000000000000000..6d70b3d7a84b1119fae93a5fdae95ec26cf0f92e GIT binary patch literal 98 zcmZ1|^O~EDfq{XIk%5VsiJO&|lU+=LLr;Lmjsqyl2!sqwObm=Hj9g5Ntc+}&49rf> i!CWQz@rfxZMXANb96)ALWl3r=P&G0D>I7;7Vg>**T?=mj literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/015_Event.mv b/vm/stdlib/compiled/12/11-12/stdlib/013_Event.mv similarity index 92% rename from vm/stdlib/compiled/12/11-12/stdlib/015_Event.mv rename to vm/stdlib/compiled/12/11-12/stdlib/013_Event.mv index a4b3a1b812a0c7d157ee28c1881bc0b6d464e54f..471738d28856e50121299408734233b044eba0b3 100644 GIT binary patch delta 12 Tcmdnax}9}GDI?3qGDju=9H9g4 delta 12 Tcmdnax}9}GDI>$iGDju=9E}6% diff --git a/vm/stdlib/compiled/12/11-12/stdlib/014_BCS.mv b/vm/stdlib/compiled/12/11-12/stdlib/014_BCS.mv deleted file mode 100644 index d66fd2976727d10389ab808b938c050b7740b0c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3074 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 YAei6+pE;Uh9s$mD;v$TxY3 zPyqD^0plRxT8Sz}MA4sGXR__qnWiy~%AK>WQM%skjT>iL7t?vRoEM9#EQ)27&1Pk; z_24mI-MX5S{6n{m{%xmSkBT}V|!z1*Q{1? z3`g!)BU<UYqvcmW-!6O9m(RI!E zV`T88y@u|O$r#Ru-Q{jK48yB3TnrmwC2WQp-HqidA-Dl9s4zxEBB8Hqzt%qHp8Z(h z*37lQIZ{d?xLwA_PRX%_!nG!eE}%$fi!r!_sn@~n2kzQP=s+5br%LX7XtyfHnMs)A zX&*lda2?Lz;OPpED~t6|Ps`H^4eg}*C+TaGJWmJaS(=rfo72V@X=dW$oTWyd zb8Bg6*H&!KCwXGVjC9P$NfN!l=+WLRo3#ya)j6A_IW0T!BrOlmdA!6N=fkw@BxYC^ z`RT=IGkf0(jY`xW9huXa{X(W-8s{5Rs8`|)0x7tZh)x4dfWig0%dGaRb%Xb-o}EAa%O zD(6+)9~qxCCq;ZBsarZ34F;#!2GdX6c#w~>(kb&Y?)xT7Y~x+ZZ4xysB;iVkhYT0gb1U+)={m;~?d z^FJ>9{mEGP^D}lhWAzz(Ib+Qk8_d|jjP++Mow1`CGZO}UodLhiIl#N}rtbm39r>OR zAn(Y#@_lhnNOC(9w+sB1^gw*zY%17N;DhYRb-9iAgzwxZ~H zF~`{ebI}9j;}yjks}IrNV<7N#@t2l*Ja7ULNF^Tt-e!D91TJP`E#-C;Y_bInn|M`f zsfBi$UX%9#FEhq;VCRBjThP+b)@&0Nz?mf7!Iul4ExhS8+mYZ+%~&=HW?Z3J+?}*! z_UTI3sd%Dsbp!Bz=l*Jl>SO?cPy*HALqfXfaU)%PQz(Y2Kugr+^f1-705!>aAFvo| zM^E;gE-of99&cRRsGd=L(HVED)DUb9%u!3Y)AJru1E7vglhdZ*d)M=!VP^>B6=-5h z>Ev+eDQHooDmFu+z%7TsZE3dUwO|2V*KRBB1#8lAuyXEI8rL^mHK|+kdyTaKdLEXE z+oMHScAO=erW@-UidDAxE~gLMWs1GgG>u!()0*{yZP*29qe6QK8mk{N=n$tPfg=u= ztom_%ehV(6Fy-0mtGM+{11wS*vWNd3AS5b!s_DU!m{hrJ-B=d1;0p1M-G0T_rRUJI z?6JlTl#G7GJN8Iuj+?S#W4$3AJwEe=%X|<_aDfjX9cLZ_9%dOjc&I%*+SsT60YCMV A5C8xG diff --git a/vm/stdlib/compiled/12/11-12/stdlib/017_CoreAddresses.mv b/vm/stdlib/compiled/12/11-12/stdlib/017_CoreAddresses.mv deleted file mode 100644 index 8977cc4410a0e4bae6aba3fe5ac7f8d596fe3961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmZXQPfElv6vp3sY0}zOY!QZ8h#&}VTzLY^Gz?uhg=S{9VPN9W%@h;8g9|U=Ej)sE z@e(G?6h_SA%X_~s{K?DI% zObD1T=3j6WIkNNFU`@5%TH~B?LRvdmCse=N8#}F(YG+NgY}$qH+IFd{y6&V>7jwCg zs!?Npxqi}~%Wf^}kxe%KL;I?CW^Y{Y^yW|_J>GhFF06TZ>wV$T^L?KlWJz|+d2wo_ ot9<&Gco+YXu!S%(5*`8~KYbvKSP0S#%BaMfNbs{5N`6Q13n2|Rp#T5? diff --git a/vm/stdlib/compiled/12/11-12/stdlib/013_Option.mv b/vm/stdlib/compiled/12/11-12/stdlib/017_Option.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/013_Option.mv rename to vm/stdlib/compiled/12/11-12/stdlib/017_Option.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/019_Config.mv b/vm/stdlib/compiled/12/11-12/stdlib/018_Config.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/019_Config.mv rename to vm/stdlib/compiled/12/11-12/stdlib/018_Config.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/020_ChainId.mv b/vm/stdlib/compiled/12/11-12/stdlib/019_ChainId.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/020_ChainId.mv rename to vm/stdlib/compiled/12/11-12/stdlib/019_ChainId.mv diff --git a/vm/stdlib/compiled/12/stdlib/021_VMConfig.mv b/vm/stdlib/compiled/12/11-12/stdlib/020_VMConfig.mv similarity index 87% rename from vm/stdlib/compiled/12/stdlib/021_VMConfig.mv rename to vm/stdlib/compiled/12/11-12/stdlib/020_VMConfig.mv index d4a4038b71b1b7f39be486752cba792c6aef31b6..ecd23444b44fcce501f634fdcd6eb5b6fb093665 100644 GIT binary patch delta 24 gcmew_w_av~22+dJMy@4a`EQ}0H49wy_lW%ayFnUk^%HgKu&BY2*=gQ5%&8W!Y$m+t*EGVbW>dnmx O(&Y`*wK<-XhZz8=01^5C delta 143 zcmaDZ@mgYn0n0@W-dP(>^f?4@0#3j7%(y3``8n;=WvrKrO6XtRO7{+zi}|iYz>={Ortva_X!;lRtB~srUdT bfd;rjBpq2@ppx9IAme<%#%+$~s{= diff --git a/vm/stdlib/compiled/12/11-12/stdlib/036_Account.mv b/vm/stdlib/compiled/12/11-12/stdlib/036_Account.mv new file mode 100644 index 0000000000000000000000000000000000000000..aa65760485e50b04f3631977cbe6d35d5f1135ea GIT binary patch literal 5235 zcma)ANpl;=74B^o^b7_V5a1$8<{~abNz`geBWvF*+4641&f*vu5ls>n78(F$DOJfa zKOm>1QaR+9WBx^|@(Yr`kb6$4INzHE1TCqOsluDrZ|~Rd^>pJ;$N%ZsjIlCj$HcMw z^6S4z^=I{k^}YIsaQ^Q6vEu$~x@!Ms=C?xsZm#A1drtWOnfpUf{(UqX{3R05ik{%OO_Yr~QNAm0A$C=YaB30=ZoHIK)ZF8nq z&cKxWv?`e1UIwaLoK!yIn_MY#j&ob?K+)d47;z@|fU0&C+TTQPbEckEx43P0uE3t` zf+u?5$v!ZD{~F9&-%8260U4Gey71`yqqED=<>*TEUhrP+T=e0kOVP)X zh(3#^BknV9aVFgfDCwh6Y}Xc+r$H7@%FS@wPv0_QLD{vqYjfL|mZFgh zMI-`L+Y+{~g|uN!*{(}`MFTAa=mIiOkPt#zd`seS=nWMqQwm{VE1tT9Q8y1oLD^N3 zKYgsaVM4If@klPDO}5f92tO|<8om+F8T*p zmI&lVBP)_vPHG&?G)0h1-_D)w?fyY;RK9aC+B3aTdpjBR2jzSHfw|La4a{(8hW3NO zpg$N|51vCnJxYdq_Q(69cE2Y-e{#?MyuI5qgVK|B*9=EVci(!_e`b2YlR?rOCfg+T zt}*r(W*c^^@MiW$sYGh60=NAMqH{OtB)x6p-#7dHVSAJcH6ELnpY=xx*}9kPCr{g* z_UL6bb9_jsWQ6;sV|J5~Y1O`LkM>%Fr zpI@BLrFKov4BNxPcR42y(`6}yvQZYucCx?JDw0I=Y!33|Ho?lXd*V=nqNg-YaGh4R zJhl9d6gKlDRVGM7)7fbh<1`6fGfG;?C|PKsSO)!ZbAHTp+oNLE z&BBYJ8l6AF8pogVO6Em-I6}Hc3+BaWfC_z64D$tlY~V0Gl`P??<*a(DO1A^SzK_}%2$xT@U!yHx9omgLSy9Z6$%IT;TYVFwneY#bMSA1?3A8|tkx_Mi61&`bBnM{wRT!I9P)PE97WnTgw`mpttlD-FcX zHZivduaa+yMaC4ZjFV(%QZpPN=O#<6zt!2xJ#agy*F{Qr?*(rxFe(%lHalCfIS;y-;6Pn zW2*Xn{^SIPlN4iuf8=^N+{|e42@XQ8`zb-|Gn|jy(i4K}M+Dg|DFpulhdBOab`TQs z#|pYX(ZUk^r;{Xu&n_4ppy|idvW($0;+sx{d=k zoCY2Xwa)|Y@NglPi^>altnkB05yx;Cr=UFU$=DKZPQgrLTZ>nsSy4J5SrI#;MC()v zuT9!VtQyxnkAi^Js;q}v_!Bc%u`6(u9B0CcO9J0gGW*b{V#K%Ang zS$NYITEzaM(jKyE`5r?wkSdEXlTr=M;sEm#zSQzHGpK2Ho$OXHYl)dutvW`bpqm#Z zdCKBqs=#e7>J;u~0IRjD>=uiskY~hkidSrp*H~N^xN%`ZSPRe`*qZW0O~nl{JwZpY zrSwufEoR8N^w2*<@*Fq3x9)M6Q}K+L`+-b3lbI@Htaw)7#)zWu zkRZB@WK0AoI2aS* zs=zIn^SFVGk_E7iX3evzp2)IB^R2Lk*htO8)oC7{5~q+OD!Qsy7pK7yS5dy%JkZ{# z3uv7}B|}?QL<6OY#HFb`Lz5>>Sr?nMp9%Ci)_hS>o2aymYT^6qMSG&(&*HBbj$3e+ z{M(m`6+#;*&x%*Xxm4ht`_Or;QGPzE_B!)R#P;l&*)3n|(%G16y{4wE6JCjXxG_56 z2kRdG^2p6iYq#Pxw0kx@uFeE9US0GZ>ukw)JV#yjWcZPX??l6jp{ifq?^e_uujJ`? zEnc_o!GSoR#&rGHSxn&!DzW6~@RN0P3syR?LZ?d0OyN4(A+M|CCHz$LCADC!cn)`b zl&y7<$l5{eFR4w8a=KPq+S;0R>Z|ISb(^Rjq-n~tzOC(X9j~a}SgOa?CnTasgvXI* zZ>^~>t*;6-Ew-HcN%hp)B}y5Y(E={L`kLxlL!wnkQ+PyMQopo*QsQvHt>_le!oH literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/037_Account.mv b/vm/stdlib/compiled/12/11-12/stdlib/037_Account.mv deleted file mode 100644 index 1a3465588cf2f4a091e256a0ecd694ebae2ea0ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6890 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 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/038_AccountScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/038_AccountScripts.mv deleted file mode 100644 index 3ea86f9cdeb8c0b62ca60599756ff1034af78358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmZvXK?=e^3`LWf(YCaR;zp?;;?5Je^$Z?h7{@G%I#b%Ipy%)cUc@7K5ien?E(8rE zyzoQ#|2lc3T>yv>lvKHziq0&F78i_f*w5}bXAMDcgKUQaM1>uJfZZ0A#0*4+m_To3 zt#4dd+o~u-9evjEwy4c!PueuWYhx{yK?lDhHzN067*=%fN784iyxy3-ahCF$!tV=B iE>x%SpZmAM?!Sv&a{!e>GLVAZzc^+VEz1;^9Q6s>6+m_X diff --git a/vm/stdlib/compiled/12/11-12/stdlib/038_Block.mv b/vm/stdlib/compiled/12/11-12/stdlib/038_Block.mv new file mode 100644 index 0000000000000000000000000000000000000000..fda9674f7260a64da141b7a3a8eb539b3289226b GIT binary patch literal 766 zcmY*Xy^hmB5T4mT+q-sb=aP^D3MwRiM0=D67Xbw)L7=wwl2u|6JJH&?lc?!<3SNSq zH=y7V=#Y2@#?GAxQ+Pcy-}lYz&V0T5+b94q2%6~upFR_Bh5Ya|_>4bT_>*Vq7uWg^ zzZZWI-!Sl=>inr=+r z)hk;sH!f;#Z;-y6UCidM=f&Ci`McSCKCpCM-xe!ZyQXX=|GR}fJV-Cz%NFZiFe~dT zYIj*!zuH$+PP?jXiylI=IX2{Be(N(C^F*_OOnFAHPvc-B<^wt8DW|#8$Ym}cK?Wm+ zM=p*SJ962Gae_jUD-C&|q1(CM4CeBm1E(;AC%{CM}FvE=);wiFjLrJ|`;J^2~k_G?( literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/039_Arith.mv b/vm/stdlib/compiled/12/11-12/stdlib/039_Arith.mv deleted file mode 100644 index 61d6433fab0c527c68fecb535bdabf4cfeae51a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmZutNlwE+5bU0w&F(oQ64*i{5*LIx0Eq+~5El--Bg!VQlm$7<6Zi+8;8Q$-19U@3 z5TYbcS51vw<#}nnu?K*FV96f1c01hM#&yF#V<)}hJBo*3W_vzoKFYUY}{L2U(#YQ$QDnNYN@JG&DQ-%HR|>2ht+gE zTT1G0AjNZSBA|G-WvW%!hBC#*`XY3in?3)tb8Nk1HW;vJPZ*k%C|O3CE_o()g`6%# z#uV7HFF2^m*z9x0v57|h7i?tc9$hf{4}m7O4vpT6yZSc_{)UAVgJF`dm-0d>33+nc klI+TqiEj&zC1+}L@;lp?T8BB8I;3?%E_FH#yE+Cw0k?20UjP6A diff --git a/vm/stdlib/compiled/12/11-12/stdlib/042_TreasuryWithdrawDaoProposal.mv b/vm/stdlib/compiled/12/11-12/stdlib/039_TreasuryWithdrawDaoProposal.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/042_TreasuryWithdrawDaoProposal.mv rename to vm/stdlib/compiled/12/11-12/stdlib/039_TreasuryWithdrawDaoProposal.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/043_BlockReward.mv b/vm/stdlib/compiled/12/11-12/stdlib/040_BlockReward.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/043_BlockReward.mv rename to vm/stdlib/compiled/12/11-12/stdlib/040_BlockReward.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/040_Ring.mv b/vm/stdlib/compiled/12/11-12/stdlib/040_Ring.mv deleted file mode 100644 index 870e433ee9fc90ba055fbebda1186a8e2267f49c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1292 zcmZ`($!-%t5UsARo~66pwiCx85LUAtAQBv$VO3bKNc?~`B$F^A8C&**gabdog%cNU zNPGc8`~WBJ`~^Qj^^D^K_vTKtn))ft3qy==~}6NqiCE5Bx2n z57Y`ilh$9!nQw&lJAG7*pK;)R#r~K81Rw!`7_tNjf)$};sYtO5RKPL}d^n0?mN99T z+E@X?DFxVU@)lcy-PpE{<$`Upl%m6O(fMeniY|4%zuWaWE_T`(XI;ZN6|1Iexwdl- z0|O!kDFP!{V>mU#%4DyP3Mp!>Iiq$3?Bx_G#PmpQA0tUV$FMbyL|x%YHPx~*J)C4} zK2_Oua{E{*mluW2hS(`H^wvatsrR7oy7EVFTu z?$%~2FW#oR`PLvE@9ghoMM=f5$UMwsxR==}{z=1UkPrK`%Gl1Ca&nN4xbyQ%$S6Cq zQJT6$RyHI!o)~C6(2#&74eQX+>QS`28}_I)R`@4WEsGj8^r)@khDgLyYj9SUE`L6m0yhInQzIZBXL8_G~3pE`ApHT^?sjd(u0 ztWoHn^Wyb6_^OSv2EL>;cTQ-0Y!ju$MLNs#Zje76I$a}|lYsko;+qs#jB}E(ayKJ? zoYS$x2=(t|X-z}l4+M66J+)j*B5E6cTS=SSB`Ip*+ykL(I#;1cg) TE@Yq&ONP+@zIY^^aOmJK&@O@( diff --git a/vm/stdlib/compiled/12/11-12/stdlib/041_Block.mv b/vm/stdlib/compiled/12/11-12/stdlib/041_Block.mv deleted file mode 100644 index d07b44aeb4a27b3a651892709fe7e3dec64ed94c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2561 zcmZWrOLH4V5T2gb?#_&~T3M3g#IfU8&O0IG;VdD9IEjm-C=x18aiZ8-OG~^JTT<<= zVnR^`cP>U#yNaZcJ@j<<^nBgZ(=*$zmjBk05Tb#!XzL`~ z{0sOmv@3q6ufh41{~_Jisv-YXk@{1I=4bQDsr|Ol!397lVT2PwByosKJfd8LaR@Pn zkeVcXje`U!9U#PUI8su_Rm7)^kcO25K++UQ79^4u;NmtQN(Veb78UA_02(i0aO9|m zTO(%TrU^Rc@Q#Jz(` zz9lz6^1G)2r0+HSz;F5se#>wB9Y63o-sbE|McBBCs9Xf-g99`P9< zJQ~^0DGe=E=-+z9DV#)>0Y;_pL_IR`#K0P&Kc`e#76o)*gR-H3%Ruwe!nKPm>k)Bx zf7pA@?%vy}-5X}fR==Mmd7k8QJIjVyF1BAJgMvSZ^F8@^RHVZJf07QKc~8@WBroEF zk^Ca*6~nAn!hDt#aX&6%b#E`}Js%CzL7``CUVD@rmUbnmzZ>UC)SFs%N_jsn5I92Y zB8jr$u&C7I5#lCuYBgKfn6VKCo4uS<OT<{%o3 z4|bExw-ckdG~L5(D+`du`{}ny@NRIUY}mtmMHRxqWdFfC;V!NQ$6QURsqWK zptqmojX`oaK~L;as!xI*N8*;t9JYJKntJBWRLU`HfIE6ooMU+{U_TyJDnIyJ1e4R$soybR}(j_UY6ME zI!ueb=*?E@Z`+pVP@X`vSLR+N2Wb(N8hkhBKVa@Z6PdYU%H5iB!IW!FxrHg$oN$VE z+B;9Tp4@x<@X^hicWsG2NaB8y5h|A1aYa|eDm#JK81FS@C)v89-SVlxH*2H3_ovut zd@T4fTM=j2Dn8Tr>fcbLL0S%U6l`$q8YY5LWB)Maw`Q1Tyd{=2J|#S;pT=ou+1J1P zI*RzvR)7O(Yy4Gc&@?1X2*L0=4=KN(cJWVm~BR_%T1V@ZthiNFmlJV-Gz2K-(II7^7(Z(RBgJq-3 z@%Ut1`ro($rcv`Xgi8B}YLj7;;+FeW?kuWxeyhp>6}Rz(a6`ta6jC|UNV@z-5D)Pf zsFJg_p*A&DyM$@^(hg2T)CHcX_{uAfHLaAqrOcY);<<+z;QR-`eCb+fd}ivZekpYM zce<_{VGYFhB~z!m2HKhVv00syq_}U(#b%D#wu2rs!MrsDt|3A9oUIlT5Xyn05zv59 z+gzM9iUb=D4Sg&DY;>lZoH9*%5r2Px-3f@Gd!968i(=a{74dAbpO}hni`r%cY5|sS zu%WO6ntU39?o1$Iqe(6jij53V;D}5Ez#tLn)CG)m17jvwXF|z_Gj|ErcpVE?g2U_u z!CBvF;~!f3vaPZ5e7CJQ4qjVJUumJKW|}uy7*K4F&=c+fb3p=1Yrs)v7?z><0d^gD OX>2Eh0b^H${o8+}AC!Io diff --git a/vm/stdlib/compiled/12/11-12/stdlib/044_Collection.mv b/vm/stdlib/compiled/12/11-12/stdlib/041_Collection.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/044_Collection.mv rename to vm/stdlib/compiled/12/11-12/stdlib/041_Collection.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/045_Collection2.mv b/vm/stdlib/compiled/12/11-12/stdlib/042_Collection2.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/045_Collection2.mv rename to vm/stdlib/compiled/12/11-12/stdlib/042_Collection2.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/043_Compare.mv b/vm/stdlib/compiled/12/11-12/stdlib/043_Compare.mv new file mode 100644 index 0000000000000000000000000000000000000000..4c8e6794b2595ccbcf03e942248ddd1306d364da GIT binary patch literal 526 zcma)(-AY3-49Al+X}7e_O%F#A5p>>9VT$5~s1GvSVVA?<(F?(s@%g;-2~6wQ=7nHd z@NI`dcGLS8*$LVL%FdBFcGl@NZzOV#hy-)A5f&^7 z4^Q*O`KWFFDS^whX?0j;3GE9yy=lzgsR~#32vAfg! z8YcbUi|Of#nIE%$I`3zb`OoR^Z2f6J47D++qB$k}D z-qR?o2tV~1!#HJBq$7>dBG%f-QF*CjaS{(;l#_sPF(OH%r7d=u!k#9Tjy^JGA3iZ; zuRfDf4idK9JNlvk>Ocbqd9Y0(cJXWF<;vR#OJlt0k=Q+^9BhXUlagHHBY$W@N_G^sn7-)%Ys1NJv6gqloLouw{ ZP^?0Jqt& z0mLL$Cj_IUSz^zWl4m6HY)l)8+4&8$el@usm*t{r8l6;k%h@8EHaEAA%c}AB^>X%& zrmi0Bs;SfYysFDIdELll-QSwYreWznVgd><{oodu6WUP+V~yg)VJJIi?Yb+A_8*Nm z4g=}gBDWoQbFSS>wISHZ_M}zzr5_N<9i4G+9jl zkSFD{TR!S&HY+FNGb*oQE?xzNznBM$|R3 zv4@r%xFXjE827a~(2!1A_3lM>A!sCbUHhC$J3vHtwRVsVV{hWY+RCu;E#J z!`V+M&wfb)1OfpP6rcel1E86KVGNctkVpmK#?5O5GzWu*&a6TsQwKm92sC2hJ<$0` zH5p3C6DqWb77$4X%VTsvOvZyZ#hhc2zwg?I*j%>FuCA_!t{h@@AEr>ey}Z)Lynfep zZP)ATx@uy#tm07Y4(&y`*|fLKQ0(h|$R>Pq(4CTM->%EOtDAbL%YFS2)1GBs^pD_J zc9PFdQ%-QWYtH{McRtQt-xuX}+r_?L+}y6&&ZnY@Uy7p-cS;rQZh0g{ykp0cu36oD zW?S2$ANVQ+Tj2+tE)+KYjfn!z_-6UJ$au&w;2cxP37IJ2VFg4llbDkjliEY#aRDnN u$#JrDkl8?vRwRuIe*6rXd+lijfraKG#r#k&Nc~5>NA7@}^~LzZ#`Omiz=Ci9 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/052_FrozenConfigStrategy.mv b/vm/stdlib/compiled/12/11-12/stdlib/052_FrozenConfigStrategy.mv new file mode 100644 index 0000000000000000000000000000000000000000..598f68b0c2b371e3dbf34887b56198dd25ced6b4 GIT binary patch literal 2298 zcmZXWe^eCL702J3nKv`LJ3IRZ7FYxY3W6eNK?SRv7zB(zqO2fjW5Z@;7hHs0-Caeb zYMNM14N)Vdh{fWMBUa;yL=v&0HpGV0VgylZgM?H$YWz`R;lxHHMf&D}EjiskK6~GN z-*@NUJNN9{L&5*h@c;k~1TrIwtp8T75;CX?&JZra)2ukmVSYF26r}soJ&x!gU;qm^ zfB+An0C-*iKp!|;1uFRJ{k?+eOV4bqZR?^ zr-Oj^m&k4a3BZ|1C|)K@7)U}f;~)ZT5R0I|2b05aysE|q2>fJ5B5PiP2#NqgC@~Ub zL_lno;YENLK?N^~fKde^BsMh8ce^&*ohdG7o+Cfg>$ZCB`6X;}%Bw=k8mq&((8iB! z=~G;8d$P^uwtGBw51;0CyWAdW>|veNX0upxb6p#pUOy{QxxJQL8rDK~)N}F=mwKDa z;&3{=4r`%fvt7=kiC7999^~4XTWB?M8hu;dt4gN`OccSAhYQVTy)B^kf5AIOUK(KRdP|JTYJwGdWb@mB4!CC9`kp!WLo z2R9H7o1lHTcc`PwT^~A2W zIq+rkvH*mwOJ1`7Qi~FDI1{@tv*~X zwKhyyGJfXTV&eH{ztR^?!2ikxy;mxguHVy>mYi;WN9R!LRW zx{HU8_`f@A&i%gfIB^@oWqaQ@*A*9O8zPP0*WSw8fUuN$MOm}2reco&4XNzci?b2l z+-H9>7&<&PsAciPQ|q^XgK+onX2qnwWgT98EaBg;H#OxV+}AnXsJYf9p1u~7TpYWF z%!c2ew)t_E)SZz-k+EertozB+4Zcy6DtRYYXaLZ&t4XM@T=Ju5cav5Grpm2iQjp1#n$YsdeYUiAC%ABdb+kn{BoBe zaM^3O5ni;u+C2N)KigUT(v-5fw%?OC7~Py>%RhNGs?Bx8)6_kHu(l^`g>LTOTGxfN zr}PyhMIroC(}$Zvvs)Xh(|&t>gZ=6%gjq+(PH^To%);GsUKu?0h)mtqs@k&$w(J+L ztp76fyeIqfii?LlroI+N0i}|5tI`tBPpXOCs9tO zjHaAI8ABOMIhAr6<&P=jDB~%oQ_i5AsmSPv+O!0^OjKkYU=Zo4-bk9P<&cI^m|1|s zFWw$$yPjOuJ{k$?$X!g72ovA`loC;r{{cuIQ3zxjAWNo!Wkhu_g4Mxz5lkHg&Oj$2 a;QuFq3<(Mn7ptFuUM~X1?hM&N9 zQlxA(GdsJQ-LLtdQvhHQ6e%g}wY-shd!?7p<{M}B2i^1+@6JAHa3K(Y1`q{-90&`E z64a=(LO>&^xHL}?SSyXn05V!aH32Mhg%&`9Em<E_oGSLw8X(P3*hu z>$cs8l-w@1{Wkcn-UXL7AHm19f3LSL<$d4eQP;VwDZ0tgzZ`N%CF*IFKtiyzq$~}| lSvr_OMR>$mQArJ?94ugp=Xh^O9Gg^;9I#m6<#6Ztg@1jSDjEO) diff --git a/vm/stdlib/compiled/12/11-12/stdlib/053_GenesisSignerCapability.mv b/vm/stdlib/compiled/12/11-12/stdlib/053_GenesisSignerCapability.mv index 0b2013c1451644f88088db741227043e300b7469..c7e787b2b265ab815a9eb27849492a6cb811162c 100644 GIT binary patch delta 94 zcmWN?yAgsw6hP7YKCJ8V&FF*%%PphmbL#4r`E;oUiTnYM(!en>OL2 uDIFS$Q@e6Bt!Ilk8G#!fk-NhcBn2%nq;x^645W6$ns?u>LlViCNgjXL?hLj7 delta 105 zcmV~$y$!-J5P;F|?rg_6|5Y|&0fdm)!ZV~m)GPo=7D-P{ML|Wy9MpO5Wgoi_=fA|K zcHylleKk}+-Pe<8yI8^#D2VuoBnLYLN(HSkq;Z0_9;9=I^^ZIh$2?w7d0a20NHyQ& GppFfa)(@xv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/055_PriceOracle.mv b/vm/stdlib/compiled/12/11-12/stdlib/055_PriceOracle.mv index b8584e7754d63d0f975320ee01be7b17fc125d7a..e70a19c6aa9ea7d41682a63b8def70046b69bead 100644 GIT binary patch delta 385 zcmYL_F-`N%Ljxw28--r!vcYjSX;*FWGqE-WP3Ck_AEIBpjmJR4!{xE za04zuwVfzoEUT*Cd-ds-%U_@WH4*?cf+U#*t1l?NK=Ch;>E9x>f5Z=* zeU`+z2n0a{q#|USS&R?_AcK&Atqi=4M94N4p4URMHBrpgDzDD8x5=2Fj`_J^hUUyg z5rr8~V9!lFjK#=mG55$s3wF3z@zdlV z?W%h3#G7ikkyD&r@vjftw%EC$?CWaZ9Cqcls)x4AnnN>`n`)@azP;^gw|Y#J?l5%s z&zk-^tMpk7H~Qo@qI1v~#eKXvrC-trwZpykkCjZ|m^%tFn@JY9AaBS~*jjkX5l34H#0a&>P z3khVfAY=@}fWb8qp0`^<&3%f9~x1zjl6S-G4lv;t?2d5FkN;0~$KybbEy3pg_DMKx+paM<5_R z7XUupfG#o=&_hmZA2~qKI6}H1Ad(cZWtV}n_IBeP+Lhg>+u{H<;30GXAGoyph$zd4 zoS~y1VW0SXOo)0f2tn@#wA-g0e;h?1Z5BsodZ_&v$HYKj?=3sJqkM?e6*e-FyC_kBZ6>D4FtwRK9eX%dEkq=2C<2W3xr2 zIe8I@vd3tpR7#^3_N(aUGUQC7&wWqQu~w)RQ(6gZY$lsOXOdLcr%B};&t}Ccue&Ej zX^zvhG*x9PH7U!YtVX9MH&s?mvw3dHlVq8Eoh`EZ+WV@^X6C$1W(%X%hw`HM#^n0q zdTGw`%c4urUz!%sTFv<+ughyay*O#C;jA=CZQ^-S#h1p!$vS=C+C>8%Q$RYJn>tRD zI*F@dRnBhWwyghyyOH%(vt*Iw^Y}8E)kPU)c~-Z0YXsN2G79?MM5UQ$Rc*=!skTM* zZ(M5<-PMw^n+-(pF00?BW%8~~-O#;7pU;wI@S$S;WG!=Bqjy!LtA&a4xQ&2O}VYFYPvMqh?<&(nOoYM%&pk#sMuB!6VvUA z1WQ(RVdKoQjvEPt)!nJ7nQ?L1Kb^dqOwXqA@ynO5C(~(=<=>KaX`Gbv)s@L>a*)Ee zn7f-!+RN#Gk=0tv=*>pO_Yc*c`L3p>*A2BsV4}Bq;C60AZ+UMH_UL(~9-IHYbUdA& zpPU_EoSnalU!R{}v;{b+Sr%1R)5N*`L9V0LW^5#PG)E?O<(|v-U3OP8hWBWY060Sr zLND}v*^^<{zLz}=d%oxi9riuuVFW(!Nsk`^Lp!UGk710A(S*a^i!t+g7(KJsc(~=V z00xI*K>Gphad7B^9Ma_TXgHB`o1BcCC?9lu^iVvKPwBmPARIpSSilF2Qwl&ykPwIg zqv;69#+=!yhr**NJQhqfJUT8}#E^R;bf^emj^(t~7NpwK2&p&~-g$x|vj5MCxbox? z(qsV|!wsq=30RMf73;iDH-wzKwKJJh>6iVZYG)4Fq Di*-ux diff --git a/vm/stdlib/compiled/12/11-12/stdlib/063_STCUSDOracle.mv b/vm/stdlib/compiled/12/11-12/stdlib/056_STCUSDOracle.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/063_STCUSDOracle.mv rename to vm/stdlib/compiled/12/11-12/stdlib/056_STCUSDOracle.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/064_Offer.mv b/vm/stdlib/compiled/12/11-12/stdlib/057_Offer.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/064_Offer.mv rename to vm/stdlib/compiled/12/11-12/stdlib/057_Offer.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 deleted file mode 100644 index 16d8f1836f89c4825f53cfd9e12fe71cc0890084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmZ8dK~BRk5L~Y}cG|e4fP^^k3Qk-(pq>%jEvwlUOQ?x#m#WX<5j=q#Kj9O^X=o9a zJUcTh%}Vor^Ia(b&;pcH_q3Q6kJs9NiSh&I<`WnFP5^=gAqZ%|0y9?w*BM1AB;cgT zbgD8|I-?o*ETbY#B~55bXb8}tD8vM$DF~IxA7>9P?iVgTEraip9##Du+$OF#9PFqY z?%L?n+;4ocjZ4nPb{m#l244G^IH+yc+kCb2>7@y7XV)&;6|?0{3j517r=#PVCUA^( z#~f^G?J(bNFNW+kxaBL4>Gf~AJ=n9ukx|Y6-|9>I`vmlTNqt@ztf0b5+`&+xpfl)& RK zOftnh=CiKa%d$kv z6E1ko z6$1A!Er9Q{)x{;W_JE@|pFQLyBpz{$)n{uwi$v`bC!)Sc!8URR;reB_|2Rhl*~n!O zey4l|;ghQgT-1yy}Bnb9XOPAKZVmT)SVpb-A)oy;m((7AwouyA|-PVLW7v5Qzw_ z23PJG4?-5A@etiQo4BH3?Ue}LCImr{vaYC3&4#+wU5ZSKs_BYL0O=2C&--_G3dZB zGj73-@**uyxWq>)ZcDuS;7 ziTg=^CpqZEy=TqC=5F#XNl&~1!+R6&rQKfk^P^tpbTcHtuEUkJ?9R^gc=7lB^{28RuifnrX%TwAVfP(DRu8f%mzQ z{J98p+&)ZCqBa&Q|6!$z@waKOxtB(L*8++qa}cM|ZnGad4MWskFK%KZJi?P!;1;Z; zlT5L!PEseGBu$#{l3&Lr=|{czAnB)ZFHe3W3~sNN9HvRPqa7n@HxJ_6DH>59Lq~U- z?O0NFzDx0VHRIM%Ve)6F=y)~g#P3}Mr4cfyt8+2?5uWo^ppDLc8o2}#Os9N~gT|-M zh(vCpZzHl?JS$FF2BZ3z5rW#&y|~>yjz4U9ame0t)9NgaBwZ~|$8vTk zd2R;GQRlF^_e-a1hPxC-c>*6#qDeCT*dhxH05+o*$Z|?c_tL>c^JJHjvt*^ItcJMGI zY2;L=n|Pu1(&%7tiA6(00S>=AarvZkjK`rBHG2m~ZHysL1Ljntw=Rw%ourZa-~`eW zW#Y$0@ODUwAQ@x77-RcmEFNPALyQ4`#yRjU0l>EdD?oms;kkw{HN3!&8*M9)TjDGA z-9UT~uX0ddsVy-eUWVMC+zddz65kKR4?_OK(PfVx6eKmMnsR&NjUAGp50xP&tRgF> z;#GBpSNuw_qAEc(tl|TXacP+0n;7XSfuFQf0zeQU468A~2Ogn(je(-qpDyMME38=j z{61#VSK1ea`xOHlXtRzl2F|#?Su}iISae_oFRVV6GGAETkZatChN^P|_y8Qlv5p_p zV1#4c!VwM}G~wQ7%cIKvf2=6Lpl{&5W`&0o;xd!~EE%Cp0Pxl8a<7RpWJfqY2k8yS zvzpap8G#@GWz@SE0l&6{#OtF^XDGwW%vz7{qx(uT&v5byzG!UjGf1GsX! z$2AJ0g5Qv^V!_F4A+nh*5(U!E3|7=J+vx|;cbRtgX7S#jI3jbMs8wcVS{a=sy>CoDJcPH=}Q z1Iwfo8oX83U<%vC*VGi;!2)YDaidLm0#dGL;V!z+jevS$ow>El6x>5*u)c(i3FReB zDqIh(XQfpZ29+xe;+$1}4>kIxU&8>aVzSD~f;MR{R!! z!erWF6F52dxd*|KxR1srb+>2(L@~`R4$azf?gc!157Dhl6Y0p4Uj9|c}uoh53PaYbuFvJtMfDm^4 ai9H*dQZzUMu7pt-nk=5fDGVuomViI+@={0u diff --git a/vm/stdlib/compiled/12/11-12/stdlib/067_MerkleProof.mv b/vm/stdlib/compiled/12/11-12/stdlib/060_MerkleProof.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/067_MerkleProof.mv rename to vm/stdlib/compiled/12/11-12/stdlib/060_MerkleProof.mv diff --git a/vm/stdlib/compiled/latest/stdlib/068_MerkleNFTDistributor.mv b/vm/stdlib/compiled/12/11-12/stdlib/061_MerkleNFTDistributor.mv similarity index 98% rename from vm/stdlib/compiled/latest/stdlib/068_MerkleNFTDistributor.mv rename to vm/stdlib/compiled/12/11-12/stdlib/061_MerkleNFTDistributor.mv index bb8c651a7e8ad0a5f1660696ce1e189bf69436e8..21a56f784bd6b882257ffa1021b6e2245f948e56 100644 GIT binary patch delta 12 TcmaFO`I>XWG)9(<(?eJQBHIMC delta 12 TcmaFO`I>XWG)9Jv(?eJQBF6-< diff --git a/vm/stdlib/compiled/12/11-12/stdlib/062_GasSchedule.mv b/vm/stdlib/compiled/12/11-12/stdlib/062_GasSchedule.mv deleted file mode 100644 index a88bc854cbdc989962d4af5fd31115c84138bce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8488 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 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/063_GenesisNFT.mv b/vm/stdlib/compiled/12/11-12/stdlib/063_GenesisNFT.mv new file mode 100644 index 0000000000000000000000000000000000000000..59de3f76bb59d8f63089259d60c76ade1448ffaa GIT binary patch literal 1204 zcmY*Z&2Aev5T4=BlDnk-)`}y?PUE(>7AX*)gx-SK4SaA4RJkuU7Nro?{$NEbRZo46 z+`-|_Ej@dpm&NBj%b zZ~PP2pORtncXF1!SI72)`V)KqYDRbj1{?%PpaqfvfKmWjgOm!%mnl>r4lN24M`Q`X zC=QTPCK$#6EagE@Qt^I_3^XmnGy!}_)NH~GQvx56R~+~Hz)yxFrWEfTB&ft=AkP$~tlB{& zg;Gc{RwGC>`96}^+cS&#$nG+5AI21g+%=cIbhTUi^{XFV_g*xedp@6cZoPKv-sRlY z!7se)C^o)w-OnpW*12DY&cC?{O~>h&{MZKH)ct#!%X-m#cD!<-oZLsRd>vktZTZHp zeAo_``|3r#2!*FaMU;_1FWuge`Pv6xuKceq_3NUdbT=1qJHBa`T{(9}Xm;sg+qxY` zu{ldNuJennncq~^wjd3wxv6#vimqvb4NWLl#rmdgS6k`px%-7*mu>(5%?(~&yt{RJM>?p;w4rg-PW+rn4n(&^4E>GoWg zxvCA@UAPye>@n1VBt>=j`c7Fab}wtuHC3^B7WHn<^3GMw#ue91)t39KvU|}*OA;3} z0iXXcV+Z*xl-+gX>-(pXv7^cBx9)U(8#%pIaY~N?7>*Db%PEyJhGWhdKG?mzGcB~r=0PaPE^<4o{V~yJl}AdBgpswMk=HEF_^P7r-`3(D-F4cLrw*gG3jU&%kGkpl5hZ1Y2un# VMmYAAW*}Bd46(&VrYe3p{sVR{-Y5V7 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/064_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/064_StdlibUpgradeScripts.mv new file mode 100644 index 0000000000000000000000000000000000000000..3e9fcaba3bda416d9d9f559f1ef94a303556c5ed GIT binary patch literal 2143 zcmaJ?Nsk*v6n<6Jdzag8&*IrKdy+|jgiM%86X4)@vMI|9v9n2_R*zkFn(=g7-R&gK zAAlc$ggA2Lz=ecJ_y{+m!`+Yw5o2>zWNnnkx zonsGP66I?;r~W{{CHfc2r-tzjFKFNK5BZn5zbPsbpuj)@6*SPn023^*fkO@)$U^~K zD8d*aIyjCFuB#9rrl|uxt3dG$j$iHtNf|>=P<%`BFfRECNhT#JQ6y86n`TI6B$-7= zFekYalFTDf7f?l8BpQ$<-2l35bD}saIRd#=MDiz*Sd!CM9RlX5d;yfxE~duUfKXl6 z&mfk24aUG&9YMq6WKUE+FPD zE)j6wUPg>vUO?@_J0uUqcUM-4GPZUS1@?QVkUG{xVX}B)V%}PqUbI%GSEo-}r>57e zGuGJ&qH&-aXM|I(FiSOn5d(;Z+fs>248k<7D#WH3S5kv08n-C3C_znzwkA*mIbtaI zVW6tCLRLi!Jn&OmYABS{1VvF8Gx}P#J^)a_6dS!rJM|`k`S8nU&dOhw&nN^9~ZBfs{IMOO{)C^m> zN}PytqmhU-73ui3Bz_^H0aVSBAQP>gbzMXv4b!{VYNa7t4O@{&DnTdM4clSX%ij*7 zRySyg2O>$)IYV7_yV(>;VLPfk3BsYvtsvI6lc3%ftXivZ-1nNpE(TZ1zC!Jyg>J{Z;-6HPOGFsmi-z}|?HNqOIX z(jj(BD`;aTSP^Bnn?zO^g;^N1!xzFxLU_# ztJRxTzr3||?`pNGC88n3{ybj!6$Nnz?qmbr38Uuuvo7;E&d)wQ!QCjY9oFuV)r-NVPKr)U!e~{@Yo|}jaU;dD`9iee5 z@R=LwVwk4gSGAi~N2i&aR)8RMW;0LQp~+=^J+ew~M=I<5<*M!x%bo$EX}I%e3K5(}@r*l5RieN|-T`;cW1Kh$d5Qy`>S+WQ)et5OVW2v)b7zpX zrIx$IO?TPTIdj;-y*+Ip$v+4x#un;u6>-Q|C6 Wb2w*)!3Z@ai-{b*nl*wI3jYB0>fpHm literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/072_Genesis.mv b/vm/stdlib/compiled/12/11-12/stdlib/065_Genesis.mv similarity index 78% rename from vm/stdlib/compiled/latest/stdlib/072_Genesis.mv rename to vm/stdlib/compiled/12/11-12/stdlib/065_Genesis.mv index 78701566bc289c4f9bc8bc6bb1045d23b4addc26..33844f2593aa50b8af308821bfa077d0140224b3 100644 GIT binary patch delta 507 zcmWlUyKmD_7{$M1-`H{N#J;J0o4AgBlfGyjr?2p)DNradv$8Oh3WipSy1-H~GDWCD z3`j^FSlFtJ-5C&K;NR$f03G-|+@H?5_j{cCCBBFUXUU~&5s?EL8Ka>&{%nX3W>WcP zUK#e8_0y?d`hoS&e-G~}n0y>;pHPZV0yU}6J zmUW$*X~v;%d75y$%j%A1-1U0Yc%$b*&3jx_*9)LFczlg%U@zJ~e z!`-99SFaDAACF%i?;pIK{xE+Fe4T!(zCb&dd83ehw~&RK%fjHPv^aqroLaT-SUWwh RO`N{l=hszPOrN=b@E<9xKN0`{ delta 502 zcmW-bNpjOb6o%igZcEl+4Yt&=6v=I8a1u*)MrMaFa|tfME;n$6EsIo=9Z*!UWkWt@vv>uk4R* z`%4ttKcX`PKjW7dv*QKUBw<}rz7c>B#|~wgWR-84xT+iqLkC3JJrig54QarSw8a>L zG2$>CvvRk<)3#-cQf-5z=FYZ(rQ4tt&1+1(G=@*wBm{IFPM9+j+%YZX(Oy7Kx!^U^nh zA>rnT)vY1pcCbbry}ke?cep6f8=&5tZFvWHvjmpux$nU8lS z%qKOQw4UI&3CFNGXM9nQIAik&BP2Lu+B1&f*_&Kg?Jg|sg59Ag*q1;&{#%M5X#>?Q^wz>-C$>_2%`}>T+$Zwo<)SyHf?%XvPD^2$6^o)Cjq& zT?kl!#shR~d0xiykcDz%0lQB|GKRIttvNn2<_qo`juYe}=5WEaXMLa_&J{@4_`*6H zn{XV@s*kv!@K4Z!z%>C!BigsoVHiXxvNlqY!XYg*nT2b~4>KUvI4NJCjgcxE85s>I zLQbToLj-6XU>uT-Gk{>^Cg9_U#Ta^{z<>+^*A8m?ndnr;#_Otp2}%ZiSV3-`iBTiQ z333A_OOLc%Ve`*a?3Q@(*-P)y-d_Kxmxhn~gZNRWGl+-7c6xc- zFCHet-Q=Jb4<5G<+pm+iNqXXr81AchFYOO!O<( z-W+k7e%;56-$k$cos)$bJn9~$(YqvlL$Z?0ht@~NI@5`V>7ak|vF8c@Bkzlu z{HX|3+&xTBqAnJz@NuO}@z?2~y_ZHq+X9LuJc!fib$b|F4NcVEAZ}wLT*8x%Zvj@) zN~Ty=E2)xRk|yo9$sb~!45LAOkPOp!5YFInr$A9e80y|2IZTs&PgzFNZ6Cz>DH>5% z155YX-B?nto=y08BeXCpQ{e+DI^OVm@jDw&IYUNOwk{UFgJ*peX`{EFMmC)UldGKK zpz*m6L?S!i@nGRQxu?bBuOqTt`cRy*^s{Q|3_em6Q^ zkJ3KosXIsA?n$(t#BV#0bOfCT>bhfFrtE5)q-W;F8_#4gnbcr1iIUEmH*Suk#3a>S z+w#P8@eH-S9zJjPI&Wib&)tZx@C?&M74`SagZTGH2@*4hIsbI$#m?@t-RRMiCtvRD z?&8r((#WdLxAA%#q|w3XN{hyZd>ns!{t8L&7!OA$Y7Y*Mx)?)&2F$8PZ)_YTI#-$c z=seQvW#-3)|7J`IKbc^^onZSDES_KoV~hcR!a49A0l+`=jR5&n!RHE|Dfl6N@o3ut zxg)-Ce&mbic(H@?g|j0@#EXD?vztE1AB&&(;->-sGQ0Zm^Ma%Tr|HTkg`y`yCv&fi7GWf8#ne8yTkI&pI%5f6nrZQtJOW(Av}kjAQCR!x9zH z)$F_GKy&Q>c@mh~mz_#R3#Dp*TYTE?Q?3pI|n z27`TXdd8vux$F;HC$!TFU34g3=DHLmM&kp;6GuSsgRdxjds2R^SSfetoIfGD6uwXkz7a7~Xae zv^Y*43uRN|mfXh3f)?9G$3Y9W0j^?Un#)aCk$t6Fw!t11hi)DI5a0$i z5Ks7~3pcG~d2*;o(%`^*R#&_h9#sVunbHB}a0#a_~ z;10S_EuVT~thstP2W!amH&?JRfjo~%1)G6!jWmvdQRR#4=-0s`WE*ch?0~l|ag{B# zt(;{nFSvLOxZpCEy8?e)fM7oU6QQ`m|2=%XZ&{63p(bjw=G4@hUNhCOs%p7fzE-HR F{{T>1nu7oU diff --git a/vm/stdlib/compiled/12/11-12/stdlib/066_GenesisNFTScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/066_GenesisNFTScripts.mv new file mode 100644 index 0000000000000000000000000000000000000000..b7c919154c3c62050477b515465a3716f6423676 GIT binary patch literal 121 zcmZ1|^O~EDfq{XIk%5Jog^QJsk6lKI!%l$5j~^(?$iM`|j7&_749q;tTwF{H%xqv< y&^o_-GYK*>F#rIFm_a;7 zW-!IX#LUFV!@$JJz{$wS#v|gHlA2eNnU kTvC)@8K0V4P*MrB1{p9iFtRW(GV?K5FfcK~n2bye02THb^8f$< literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/075_MintDaoProposal.mv b/vm/stdlib/compiled/12/11-12/stdlib/068_MintDaoProposal.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/075_MintDaoProposal.mv rename to vm/stdlib/compiled/12/11-12/stdlib/068_MintDaoProposal.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/069_IdentifierNFT.mv b/vm/stdlib/compiled/12/11-12/stdlib/069_IdentifierNFT.mv deleted file mode 100644 index 44d5f27272aecd2f94a15d3e82260ffe92ab259a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1493 zcmY*ZOLE&r5bf?6V1OAAACaO&N{*F}EuTP!E$35CB~@M|StMDrAQ6;NrT`WQ+0iAm zNRMiyD+2-#$lZ7MwgNIG0h_jLDr{icbTcgKGj7XStbn)I3Y;unfMOe=1G|C?NJ@gD)_8(J5`4$C#weze5OgJjt|aoc4JM`q>;cVqaJ`P>2;#kH7>%NFgAa?q0EUP0NyqM=@Q!I+S{`Tu1+^_1os@KB0->sUWD&6mkt1_?s=M`t(*m!n% znXj6lGcyL)xB8;Z&dNm-?%dh+O%wmPnrBV^Wwy#Lie=GkORJk^FwfUbUER*|>s50* z{NJwQRow4Ixu}Axys_l7f;ZteMcM2KovS)48?RkwP30HsStm`gSG_6M(k`aXo140v zU1XQ9!sqPm2;4ezjtjc^)R?Td6bFnPeFY~!&U02t+%71F= z?6R?YTa{$XI?v{}yUJj5Ae(l(v3T|%_7Ku?$VIVSZp&HpcOgM<_NDfHiH3^8A6z=4J&O5sFm11Ua%&%p@{-$X1(q0pc3$ zI00qP1cg8^x~txM^-A4cUtjzT6##e$F^dC!{7DQ(e!(;S9e*+Jo0yv);*JCe3^)jo zpp??Um_|Z1;ovbu4L%?DV2VRQu#pH{D+C#ML`mPLokszoF@_*!$^gzyj9MkL2yihc zo-HvUfmtAE?P=5|ilf;K4PlZiBLl`c3PT4n!%!LYff4hEQWJ*^C3=8}oGIf2hDbs( zU=;8tr}cW+xDQRyW@~qmw`J3J>TO+JmW4WN`m(N)^DO_I74H46I?XByT6Iwtm1~a= zReOtfS$*EtP2FW1{n51@RW9?a%H75edw1Jxvg(c7xqRrIy`CEX#o1;uaL*3sW6k#D zc{i-C%l-fud)42ZJVpCb3wLVx324K zefcz>9>}^~+4XjHYY$Xdxf{FPUw+XHt4-Nm*%908MO9ahX64~RKmo{ONE8hWg(Ad| zr8HJ!;>9qgArD0;Q>3pZP=*tjGA71U-D?t`$q`rtm;|pyM4n;FUyT9H-hL%fDn@-O HlR1Om0OO#{ literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/070_GenesisNFT.mv b/vm/stdlib/compiled/12/11-12/stdlib/070_GenesisNFT.mv deleted file mode 100644 index 803cfbad5736fb932c885e0ad731821ddbb67af5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1242 zcmY*Z&2Aev5T4=BlDnk-6-SPp#7%A~QlLHwy#=uw_}~<%b6;#MN+GKK!HQO@zCxd( zy%*>U^a%>|+6U;dKp&y#aAm`(1k7?~zWF#GcZWY6|7{WgFbI~}FZfp*@e2;+Z}Fm?!<5V@O8{rY&kmVoO5hPi#c_WC{PAeal;XWRdiD$=;BkuVV!llLzdy~Pz(2R!T;ba1+5hWUdMxtgSu^HnT zLypK3%QNyii{!}YGR-vH;#1%zp(?F3Qc?V)RuO@+BTC6df{;$lnB-h(u9YDGk??3V z>cpxJA}N(ZinIw5Brf?rlh|9I#d>6S6}V4hib8hHWp7;NHh%N=>vz4^b?aU&7OmTC z+@^Q2a8>Y2?^?=DFJ1fH+R^IFZ$j(e--Np5!K;%`?U|d;cCBoUM)lJsZbGRB+x6j4`jab!53@)gG>D;FR9!uM0{k?xYg|W{Z%>o0YyEO(7B^+N%Sq09VaiTS-qv-np$^45-`q6KdMACgaNqOm zqUry?&%vAXx93+ESNW^6vv1F@u54`Yu4f%3E{aeb6m)QH$nQiI`?H)>?qgmOCjaQe zhuoLN%IVgv=pbF2xv~knF5T+{br|YElAoVVd8TD>Y$E_>tt;?_L zvMKhbX7{4=h9oX&BtHFN#wO#dP_);zukK$=#tvuiKDd+3ZRX@w#R3&hVi7kZBwdL5%e0IAyc~`oLih1ft=bWi*Tm3|BZZR`zk4u`${tqwB&jlNdQi zD-0Mh<}W$pv7D%gfH6VD{K0J0w-k91M+!1NfRWBK$o6hF zH_k}hxNt6m<6l7h z4Ugmx_&a)kiJ!RtuQyTO`C5PPe_(#~mHo~CQ3ihmD*Q8WfxwV)CYWT3c?vvW%%VpI z<~xmZK^kL1xD!71z+<>6Kmi*uKu<7@+zBH(&B{&$%5%ohA2~76#)(K1vS3pToQN@W zVm9sq=94a9!6Gus`$P)2*&Gz#S$FWby9uDg9&7;<`}adyA8c>Xdaywj_0A6M`Mc{5 zA0Be5=e;emjN)(>E?CUtaXeW>(Uiwr#xp*TCbL--@kKndku~u&T8~5w$}*6^QCY)r z#72N}*pNv82U>0{dbR7U9A$qhfv&}LtL_DGWw|6!a_C{fKo9S7fWa-ODXPvdsyDgcg;0q>S+(iq>zC(6bCzc|%bT{YuDdw;Bj5di z`}v?FuE}){$TwW?xpulYG~w3J>bP=>*#>UV;f)ybo(xPFOI@oZ7N02BZ z4+;1h zjkNw-OAIAMYeGZ5PXj}~BkfblQDSXi{6n-d42Tvtp%q3tVn>(+CP+f7~-syF`{&fsE7xbNNf4>8SCw6r` z4jj5W7B`%Tx6pVXw&lc~xe}}lxRJ@^*qU3O3rcDX4LzC{blpHN{}Ds&@;sm>A;Pic vAx~z)m&Rk!+C#&WIq{|;L+xQYlGH-vXp#lmK~KiXBAKIWGJ=gE#+dyFEJxYd literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/071_NFTGalleryScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/071_NFTGalleryScripts.mv new file mode 100644 index 0000000000000000000000000000000000000000..b3b1bc6616d60d18162dd85a73106b62c476bad6 GIT binary patch literal 174 zcmYj~F$%&!6hvqK-_0gw2?|z{!ot=*C(zDDFA%~8gdkxP3y zWd^_zMon$@#vZn=Ip$&QpSv^=0*W(GSwKlnP`f}>l^*KVN`ZpRye8Yt<#ao@!w}-@ o+Qs`gPpe;(wOtp+IiF+unEDXY$-f91P%AVLF40yfSxQ5}7wv@=tN;K2 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/071_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/071_StdlibUpgradeScripts.mv deleted file mode 100644 index b53e7f3f3f9a2d1ee96f357fcec55bae401585af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2068 zcmaJ?OKclu5T5_vr+3$nwc|L=+vy{1fR?5tT?!Z1N!zFohphXOkX9S}x3k#ZwRYD{ z-4i!J;sP8wAmGTIo;V;75=SoFkU-)kAt5dtk(l3)k|v^S{j;<4_-5w+$Nzjh`-d(A zK!U&uT{$i6{6fUXbXxk3eo2(~#dlQoLn9-9X6zfEB)_6)NPvO>B1j;E0xBdx104)V zLJHE50TZ&2g9$}RgQh8vPAfpph>&~UAV9J&aw-Uj0=WyEhdk#eIVo^5MUfoi+_ZpX zhLc$l$sFhAIaxrWED{V~R0zmL6;oP559v6PR1rz$1QMNdY7q<5PHH-crwl@r1@+Whr@~3lW zaw{1k8$e}4AOG&ms#28@Rp534(M6(CWF?Y- zA%_xVb%dgvCO{NLK~M*Vx;#{%KoE6h=pd2-M^K6A^57*98A0TMzo4KVVFtmtg)#i* z$w{SiRR~+EwPW$ct`WsTM}8?KOQCmffzq>$SbOpT6Px&7Rw2 zcUTx9wt%)$rO{wvrs9|PT+bf{+i(N961ufE6YOf)z;)Z+7zz?qufw9)?R2GT&|@YkL07xCA@{zY#lezsnG|fhV$>Iovc^ z_Atg?h@EKAO?-#4b!>q!=pPVG-56}-`0x+(+||unoA#FNlr}bYHf>uDS)H-YJZAii z%{PZ|yxDGI(brjD z-OLAD-+b|2X|DC{?vHPN{VBiB>}qL8qs7Jh-e14}^wC@1a`3tJtDJnD{tR#b{m*Y& z^WhKP_xJzoXmowe>o%fG=gz&>vA1gvYWJG;_}Vq^PPJ5W!$(!t+ik7gyWrjJceYEx z^~()!=gJ$~H}B)U4pK@3Q#TC-47`ptqTo*_W>N<;MF|=ZZji>6!DZsg>Yz}$$p;}m zieTm_pF>2{LFPk`Kc+zW^dSkHcf_2qaPC9jkD++loS_mCA(Kvl zIcrgaq)=rEDX>IKBKS}l)dU45PzBkkGsvPf0u+sexn$v7NC~5y04&8)4cSl((NJ~4 yN|?)rluYP&vln!{sdc4Lur!0Bf5Os{Qgi7)Ujv86C>Ws$&Wfq0O4G(_k;1}yEopiNkKo$#c?lC2+JSkzH;;ku zwR#r{0CEIjS<6;syDC2%XAdm(6F0F!AVAE4DXAonBuP0-D#+A0OqsBhAHeyT%0V9Vjpujyu LtY1K)e;|Sn$x0z& literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/075_Signature.mv b/vm/stdlib/compiled/12/11-12/stdlib/075_Signature.mv new file mode 100644 index 0000000000000000000000000000000000000000..2d57b33358b2a2014d49ed0adb58e83b8329240e GIT binary patch literal 343 zcmYjNJx{|x47Gii%Y8&q%fiAxU@E9m7#I*@L>-X2Mj$FaTf?ELpG4F7>U6?yuwN)BfTj`J$Dm2n32KMu8XuXkj2C1z@z4 z_#j)WWXu_lfSw#s2m*B+x!94HzyN4bG(>giJ<*Zz1W0JSJIX={aNwTm*QOZvJ^P34 z<6TwtJPc;jjdk0YEtg~4J1%=J+ll*guCCVW)lEJX?{!s-oOk=@H=ffI&wc$eFXUi7 zaemsf^^o(f8)x0L4XcJf^w92D9RGh}NZc+01YD{_r78pMGfXH-gIb!55(*@)2uM=N GXTTo?`ZYHI literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/076_ModuleUpgradeScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/076_ModuleUpgradeScripts.mv deleted file mode 100644 index f2d215e295f47705bf56c11f22c759c52fc43203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 zcmaJ<&2G~`5Z>88J6^}JlhQ(k5Qqa8PCfY!94jgXxURPG*0qS&mVeUr33vi7+>m$# zj)><$;w2cz2`UA#vSw$#@0)L|)qH;VQ%OR|1V~KdfE}0o14QB@EWID_jrm_hEWe5% z{4PEL%79S92q%I_;^85Tc?0evLnai!BLN$t+U6lgcq%YN5(xKEE7b&f83Y*lOd%RW zNJQdI3CyQ6@VrGF5jaSYXZK)^g6RUs9>y_YM?TiRKk>nzMzbi67eg}(1(Tr&C}Y4w zynu$3;RiB=38BdTrsb9g3Igz-0T`9xgn$ARq6x)>9h_EKzqW7dyfK+wu9~9mTKS@K z7ey{#HBHsD@^#%6l}pad>b=SBn`?J!943ui7P+&{{ay3u^wLykO;uN|S$pqn(_-gh zW!%cHbw3W#_1d_n_S&xc&gybI{|`>rTLb%Gci+`)PLA9DyezuA#9+MGQMZRZ>g&w> zJ*({+MDv^H|EKj;(Ov4YaJnl>d-xB3y*W9|ZKwB!y1S}$eQ8=7m@I2-+v@7#XtjM* zZLf>A)8{vOM=58o^k#gidEK9{i}q3v*r?~OayBm9#;l7>npI?6rNv#meSrDd zz6MT!MI`ZXH8JH16io@GL*YkcC>2v&i4<^k5EN<)rj+ublzUAQP%!}W021|tPth|> j+2bL>Egw%3rF_t*B1xzm)X}IG!uLore>R$>5^3@aR2#wG diff --git a/vm/stdlib/compiled/12/11-12/stdlib/084_SharedEd25519PublicKey.mv b/vm/stdlib/compiled/12/11-12/stdlib/076_SharedEd25519PublicKey.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/084_SharedEd25519PublicKey.mv rename to vm/stdlib/compiled/12/11-12/stdlib/076_SharedEd25519PublicKey.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/077_NFTGallery.mv b/vm/stdlib/compiled/12/11-12/stdlib/077_NFTGallery.mv deleted file mode 100644 index bda70d9e15f10338f3b469feef051e14342bf596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2178 zcmZuz&2rpC5T2etNi!qukF5RkCb1Lem%!0XND2a#giu8Vs-WPga=fy=RrboYtHkk< z2jBrXaNrR*<;0OU;K~J#TzLR`M$+08sA{LDd%o_kd!{wopQe9lNeGF7Bs6)CJ^B^+ zcXU_0rGL=i2k|!xzmK}|$7nZQPd0VfSefNwOD$Q1fer_BIQI+V`NVHI(8yu zi4z;F<3v^m8`QyuUGF~Xc`@$$C=-$*QfyY-i$#>CGvCgOxM2oz)jdS+S#4*$RLkE5LDwQw=_h1!p* z7Qm!og5eJXBd87y8fps11Dbj_=|_SiXClxNw3`PF6lCig5$aaamBcQu2JC`dWOy-a z12E>nO%&m(!DMAE0xxKwBEl$k2&z8+wKEzVPn|Zai(_p{tWCDv6+vBqy4FUh7tg-_ zbnp1MSf0zL%VoJ-iKnlNMa9rAzc{Vt3+qXBJ09J z?}Gb<)T?S)o;QI_t2!*+GM67<;X$LbaJ@+BrkFCI?279m*TvV`cG_zDi8i2&Y|>4< z;K)X*NUvwf7Vj!z0e|#y+HyT02HzbG9}&^VcZdRT0xThxQ3?d`g+n~LN_SiOhidYO zyiYz(Df55;0Zb!<2FodTw((Svhj?j-rg5yn;0~I?;%I9&5x#Dn#|=M;aa#9A5a_X*d|7b&ucQN zr3rLET^iT#Dwh;f>{3!1H_~>fW*5wcD*RM@l3Jl)n@`0MA(~oEl@H_d+vYosBfab> zI{57YxN*HX2;221;5e~Lz$!%|u%2lwupZ19tsI$pwvY91X$H3I%BG<|uH;`wQ=g>< zho_MP?A&R19>>kLk(v)K49E@sF!;J^ERZX@!*|5Mt+`r_h?y3)_axRA1r0DK>=bw5 zDLfaz&UuIgj`?Qh4<75n-U)>Ay`$NO5)V~4tK%_#l_0Jw!c zjHrQO39~~U3LOA8pk{W2JA)T3c4*?AM1nv(ficC8B?b}RQQHaaIz3D@u^l@xfPHl- Q5ZDoZqY+O?1{uxBKcMIgkN^Mx diff --git a/vm/stdlib/compiled/12/11-12/stdlib/090_TransactionTimeout.mv b/vm/stdlib/compiled/12/11-12/stdlib/077_TransactionTimeout.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/090_TransactionTimeout.mv rename to vm/stdlib/compiled/12/11-12/stdlib/077_TransactionTimeout.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/078_NFTGalleryScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/078_NFTGalleryScripts.mv deleted file mode 100644 index e9736e40d3098473a75e9cd4f6390736cb29f34c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmZurI|{-u82%qg+L|B=PU7m~;N;-wq??QGrIaW_TT2W=j^i;rf@kp(K7#1rzkF}_ zFQdCw0FWRE785a5a%Pf6NUzv4Hyl4B1OlW)07nq?QYhaFRfObiG7FZB2H3Eq3^MGm zm)liQRn~<~=?<+wb-s=&%F?!e;B0+7+uYWz5BWZ}Q}2rAw6o5{Qf?dX!th@;M%~XK b%ID+1hkyc*HOztVLy_o3r3Q_f=0xxSXZ-MX5bgQioms6kk}NwUIJO}%RHce4PCif-jH6IFki?emTWe`7Z!GVM-Bl8} z@*lW!;mVN{XHJ~?5&Q#A^sKy;U`m>LJ^iNpbx-yF^x!We0U#uBM2|Fk@&n<&kU;!O zekAG-`Zo`LS3UWsdKLW~{6>*TfC2*!0wgF1AOsBtBIrO2UFdZ>oB+{U0a)ZhpAy1h z!2CYsxQiW0fRBg*wHpKw?@3K~bkAVi491v`7#4`vlBGIRJ4$2A~e{ zPH;3Bg8Im#j}ehaJ4oz34u;S@MmzjuM444W$N9=j!Y_&GHxX&RJ2q)A_t~Rplx% zUKO)zIWEhhtcK6a;(M2$75P=RnABxjyTy0*bvnDj(9`#A4mO#d$w{`zT^UZZTUXWT z?Mh6G8<)phik>^Sw`IOwUoNxi`qj#--B#{H6ze*^^oo;JSuBgi+68WvHNdnWdHZ?L zdPgaWFY9FCa#v+ll5Xl@3s?8D{B63-=1E#E*0(ON@6WTUF0;#Z?Gmi1ZCG;UT-9H% z=2&I2SQeM*GO1C@2y@J^H_1lNt*cX{q)|G5v##pI`F;)m%PE@%ckA~#x;Ls(>~OVd zT(W(x@02FRRrl-h%kkvJBsqQd>|#8b^h)>bI>TpatFhNFI|!@m&H3b-`!T+M!`xvvznFJs&1J$#@maq zpfy?GKL&oWKyLt|@Lz;u-7JQ~*CKI;aMCGGF`<6$#p4((x5B7Hu7p;^%HtSLAkr~t zYJ(UI(KvfrXlX+{lZF~$0;?mmj5MKPh8t}ShQ+T=$KVA+zib6S;}%F%CNSX%p_m)U z&}YSHNNoux)F_2220kT*)wV;K=UyN;w%tQ6MX12`jyGy!VH>rYSbM-n;+|r*e~i}P zfbWY#MbX;MaKenVJN$|GOi3(K2R_+YYui2IPn#4Y{)Kp|c+&xtpiO9Z#kmPoaLCUa O#vXqu&Xqt0g?|9PsuuD9 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/057_TransferScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/079_TransferScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/057_TransferScripts.mv rename to vm/stdlib/compiled/12/11-12/stdlib/079_TransferScripts.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/092_TreasuryScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/080_TreasuryScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/092_TreasuryScripts.mv rename to vm/stdlib/compiled/12/11-12/stdlib/080_TreasuryScripts.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/081_Arith.mv b/vm/stdlib/compiled/12/11-12/stdlib/081_Arith.mv new file mode 100644 index 0000000000000000000000000000000000000000..5a0bdc47ad7b20dd6210dab05a1c9982a9e6343e GIT binary patch literal 395 zcmYk2O-=(b422y#nPlc=L8UT-pdc!-Lx>_O_MCzxVhVyv{E3z`a1PGLA;3-%gCiw& ztoQOcpOY_CL{vFq;c;m9Z_=(~elQBsH6)aCbzWa^IxwGStQ+AF;>1C26^F~>%kXP|+Z=?A*nAQ}Jw literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/081_PriceOracleScripts.mv b/vm/stdlib/compiled/12/11-12/stdlib/081_PriceOracleScripts.mv deleted file mode 100644 index 9fc3054e32464ca19f39e147e1cd114bdb85369c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmZ8bOA5j;5S^K%shWTy=*p#_E7!e+f(HmC1_?-8(sbd{qj(ID;90zcX$x99i^sel zyyxa41puT7obfH+i{vm%vj zC-00s`rO>?*?3olS`MUzD_qc*Jmk7A8*l8~+pDXC^}6gjqN$>5*W;YFMez64DBY{7 Z@AM=NA07h6WIQ#$r diff --git a/vm/stdlib/compiled/12/11-12/stdlib/082_Secp256k1.mv b/vm/stdlib/compiled/12/11-12/stdlib/082_Secp256k1.mv deleted file mode 100644 index 5f0dd612f4273ea6dccb1faa22d56d430200a532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmZ`%J&)5s5S`gCf9%E=gM|=+0vbxh=`KpgMIoY~0FfVHImr@PN$hCtB#LzP755`f zqM_igT}ws9*ufGYSglqw@4a~|&CHjl_gVpfMo>&eJb5L?LcV+B-Qaihf3Uu~n_ECV1(=#$)N4XoFTs4fcV_0UHQ8Tx?A z2Oct}2+$4CB<;mULogsi&RdQuFn~rEKrprQ?fKq~!bo41Z zeB8~}`TV^-MlCYUmqk|ZoPA;Eiz-W9c1X9aBwg8K`q`D6ba0W*j~9$A43uv25vnUhK1VzDP5-+-+=8i>lmMQIv(H z?*4v|Q+G~>`&S*qP*b1Ux0y*`A{d1pJ{L*`9>nUUh6g~6BuZ%LL&6xv=Aoty(5#P1 k%#AccOL3+}3_~zn#zQn*bH-`z;(w;dWM_&AZ2~1f0Yy)2RR910 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/082_U256.mv b/vm/stdlib/compiled/12/11-12/stdlib/082_U256.mv new file mode 100644 index 0000000000000000000000000000000000000000..fbb223ad108d0598e566bf57c580840d5588c978 GIT binary patch literal 1411 zcmbtU%T5$Q6utH8M^*PcV0fc~sHnjp6Cf->po81d#i3$e_H-w93nD|Jnl&myl3))arJ>6y5HGH?)?-E z=bc>9pQRIgkrz(*O>^KGaS}u>k%UZ&Lvf_C7O0*B=DT3pO2z{Ve6Y}ZYZhF$tYKNx zvMI}^Eo%utW-M;jvN_Aldbzt@fUG zDeZ2H(aBIJ-8?>xI>=Fp2wjQS0LSTBWzC{dC5}&eB26LzuYg%V4=_+}FU3C2+&t~r zobqjyrLq_2W9+Ekh?CRqFdlTe+0n@;N^*Z3Cr865PZKfj^}@xMmGV z&-_4W-ZG*U%I2KmGe+6lRnTmplr)SPVrCL;RX$c5PF3AHO2QS~MEpSN3F@AFq&%#u zV$H!zNGPBAtul8ZBDofK<-;-!H)2gba3yyISK`v>61Ug4+^WG=rB%Zk9Vlm|to6Qh z6dp%&e!WIsQ*nj2WRw2|<^yJ*Q*A+0`&UV2I9lEggrTkdr`rK)+M|Gl%jf7}}-yj5NP6C8jIW$TgHa%t%LtbL1^*SA+1VZp<0IBEUgzP`=_&X6E&xnZ=evhAfR@( Z_BV}xXlQ6SLLwy!1qB5X4FZIe)(ZB3tPnf0ogg2A3(!$<1P;X| zn7D}8)sEi0H*chUU+2F*1^|O#$T)R6*S98mxJo|o6U{e`!Vf))jzFM@5)_CDfEETK zQUI}*l86jOkg`U}tcx82da^*l3#1e05uzlv##&2GE_y(NC;-)=cSHl@2#_##c94Y< zU_luf9(4OuzE-Pl*RZ=;-dz_(!)+ViZ@aRt;w9%@-B`{W&g(rlXIxBYv&m()U%i#Z zs^e_CdtP&&9(iucmwqG*%ROgD->Bt$JDttflT5bAgelvMH`}h)Rb8>F_+7X4hC{(^ z*VKJ>Xe6fpM*@(DMjkwlRZyu~fOZQE6s2B`lLZCxB)=yhc}f!0VhE|19L5kLu_ZzK LXfc>meL?UCh08)- diff --git a/vm/stdlib/compiled/12/11-12/stdlib/094_YieldFarming.mv b/vm/stdlib/compiled/12/11-12/stdlib/083_YieldFarming.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/094_YieldFarming.mv rename to vm/stdlib/compiled/12/11-12/stdlib/083_YieldFarming.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/095_YieldFarmingV2.mv b/vm/stdlib/compiled/12/11-12/stdlib/084_YieldFarmingV2.mv similarity index 100% rename from vm/stdlib/compiled/12/11-12/stdlib/095_YieldFarmingV2.mv rename to vm/stdlib/compiled/12/11-12/stdlib/084_YieldFarmingV2.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/085_SimpleMap.mv b/vm/stdlib/compiled/12/11-12/stdlib/085_SimpleMap.mv deleted file mode 100644 index 0effeda9fd8a7551e7aa7b6084c83a3ce1d4c1ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmY*Y&5qPY5bmn3?zX!<_Uy1b%OXS+A;bY`#R<&j!rzh;;t(mBs05R#zShtin40(S zH@MIE36i%owjXHM|4Vz}Gg0=1zUt9GiOoMIVh0M9R^*V+yatKrfEA+viIhbx!jTb? zpcRpV6X9J?37CkMrC!8{f{0vYEO3%rP;kk6g}ZXZy`2f~)5#w1`@p-tyw8XY-e-Q~ zb6@yzkx%l2Vp1Gv7XVWZC!a#Q(QK-~rhwa9(On9>HUtO=8n$%My$@tCRk8uH#fBmn z1T`>p54xVnxMo@pq1NJZK!l^wdDe_}eq*aOC%}pRwpgxCyA(3GS;20=5zbJVa6*zh}rV2%TAiQs}}Wo_E$W&CvB{{IGV?G*EZ*~xLkGT z^v9x}+tXOT=>D{ATsAMGJzK3~+i5m2FRRnDNb{vmcHG_-!tZHAJNo2WL zH_Pba>#nU%IueD18rH9>)ogIukHf_VI+2l(rIXFDD1}(0YRu0@*x8mr1uiCYNBdso zkmh+@t%;&06X^(hZ+2-;uo`H-!9dc^+A~oZUx7X>m$vt_~H$k$? xIlEh&f~Rfi`DB9qwFq=v9I4EeF1RwmVE&V~F=-%f>P5rKwDi&hd75|%>N|W)c2WQU diff --git a/vm/stdlib/compiled/12/11-12/stdlib/086_StructuredHash.mv b/vm/stdlib/compiled/12/11-12/stdlib/086_StructuredHash.mv deleted file mode 100644 index 41c885886649f58283e437ef9e5ef86c382d9d6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmYk0Jx&8L5QX22y|!bUg-DbsDN=*@Q94KpXcELC+GyFVv{g3Rbqemm1&}xa*Wwb4 zJ4T~7Gw&Y(z?_yg)_B2xeW diff --git a/vm/stdlib/compiled/12/11-12/stdlib/087_StarcoinVerifier.mv b/vm/stdlib/compiled/12/11-12/stdlib/087_StarcoinVerifier.mv deleted file mode 100644 index 684d44fe5845cdaffafd90109c0a8e06a708ef5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1910 zcmY*aO>Y}T7@qGP&y1a2XPvL6&4+0#4j|GN6mBGKq##mS)d-2xYVB+qQ`>9pZc@sT zWB&yguDu~~&)#8P6IS>wBX@e9@RJ^es~ zKiI!q|E5CqyLwN}pTWoO@8B=h{Ll&!KnWw92qFVQ6y5-@4hZJ~g|z`Y06Bn#B*ej$ zG`(9(HwanrV(5p+K-ad8kkw|3kXS+2S%J%12#6gW5wW|;9gI;#sTrRP1U$49yx_D93X>r#xe^rE>~nwsxMsuxPux}D{P%l|WTxSE22#>AH%k**b=<_dBKQD^>t*-K!6VAc%L(x8S8SN#GM|mGTLb%T6TCOi{ zX8!#6$FR+fd~)8ETs8ckcCG9=+W z?Aghy{_-& z!7N{rxD=M*(!e#eUqkNBA@7TOYBBeQb+^P1*w}F}v98#bag!gAXB|tIaH(9eoPj+M z4~1V@@l|JzOm1gw%5Y_pc+Jq8TDBbbw`ctTa#7+Y60pSb<4$bZ zEfR*tdm_e)Mi#qtXlO{{mV&N3-!MiSzz#`EMa;LygI)1t$rJ>ZV!NfB%&|@ZyJTMg z?u#G(Z?GZ?&}uZKu?_ack4rHNObgPMj8IU#$C{{M>E&cI)UXlsnh8q2}zcEu;N2oy%bAe88D|EnBoajL}*xszz_z=GX+ SLWe_6sqZF^_GJ`*asL6IU=6YW diff --git a/vm/stdlib/compiled/12/11-12/stdlib/088_String.mv b/vm/stdlib/compiled/12/11-12/stdlib/088_String.mv deleted file mode 100644 index 4b51f4373525345475828b2193f430dc1ee0f914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 927 zcmYjPJ#W-N5S{(>dS~tPUM`3r8iWD`QY5;gOhHY7M0>j2If+H^oopY<75o@}5j_n( zR0vVf@z#MPBYAfA&D+_xp85Rv2U{XyK~6farYpU3=F@fdTYMGni>mB5HS@oe4S&>6 zS$ww=WI>V?QASc`0(%XFjD)jF12?GXQYP1q$miIyM-(^^6$(+QfK7^$s0tIJ7)nw) z3PECOEve$b;f{mD2kw7qFNJj^td|mN3Y7wk>Ox4MW5P?N5GW&52WHf>*b!$H#yb=NMh7OTs8^?qc=TkJpi=nm;Y zTy~4I&8}T9yZznyes{L$M@6pb7xjnju(wxrdof)4d#Rz@k9X)Ksc71d%d2LMbIYOD z{pLfh+f7@eefLc$mpYtGp$GpAzuL>xWRWpVs1y~=<|NTC5{5B6v4|Lkv{g(M;m;wo zDP(Y?l^VeGl?MawadG6^X`rtiz5%ftK($QE) z4!K8R_Q3{o!iFs%SL7@s!MjMDGaX8UIkosOsA#REJgL%2)m%t_yE&~S#-C;{Qzlq% zPb-L&oE_^4w94b8@J8N4Z%4`6Jj#P+t)Bppc!M!d^I+KMXXXXln+LFkMj73dWI+81 ghCCYWn5HxbV*FeM%%Uuk5C#$?!Y3-iXB4iI0i@H z3~Ufv4nTE#GLu+pSJkUmRbAcH-=6<98USJhNiq?|7nDEnQ2oR^^nTGj`M+hR|H&8O zy^76OC8O`^55=E-ncVr30}&`emK-jSEdfZvS}0h65{v_Ap`7Vy&q-hV77l;~K^Qoa z5upVm5jsw6T&5%%Go@yfS>#xG6kBqEhJ=I(CdAdIIa@Snr#<7>;V3MU?9}RFJv?|= zJ=l0yt*+<8tZLfxdc7DX8~icmpY`2P&%0IhpxE4T)2@bPe_OQ|m&0xT#IpXPS@xIJ zx;vY-XP;WPLFK4=(RLq)ndsW9CRP~`$rEO;aVlMoCK$_bPZ!ZDADn^+Fs zH*f@d#6t}H15}2IB_7+!Bapn*4yGd>2sS5K2q8w|jS;1IDI;qcDy556sbQ{|qY`1DU R_8Un8OsM1HKuH&Scq)jIBbUKp-hZbR(u_US_ z72CW1MVFbby6SY*f9Op2{e!Oh5$y#fDr($f#?Zxm;GS~;6F)BgB@Bd+h0&I_#r2&( zG5JATroU>xWA;6H!^}6LV*Db0!uB8b&ngom4e5v=iVVb%i7dpCKsG8N2bEC;xyVD+ za+zR+ZJQxfg9>y>!{-&_EYI}onkTC8EjZ!aw&d}kS)cUJ%c{%94@Ra!R8_@3J3W0Qes`sUmQe%=F$RPoCi&B*7pJI$0DCz6u6GS0-$?(}_oe zth77Ij^!YWIzbjE^ow5HIT88%LY@Xm$o7tdXz(~J?Zt`Q4Z}pHsZ7~^ke)vZQo28k zJIBU;lEg_$z6{c1_j%Acfd&U>MJK&|uxGTR?m#BiLDZLN7W9YoAU=@;X9m|pDd%RE z&qs&7C_R2QRG4S+t1aSDW_%+%0N6QHfc;?-_u}qInsONBhA0gG^^RFY%h}n$e;c@! zuZtig)&t;{WPVo;WE!P@Fs7?_Wmbs>uY+C``a#ki^+B(NFiNu|Ivi!v&)%x*A4!>d zqhT0;zuSusgPxxO;ySeHfOP&CZ(n8sqy%;lz8a+&fC3q7|ISHr{SCm8W}R|3Nc}ho zIz8zpG6+4u>0&V!z$4B=Wma z1m{`sT!vO-lCy*q`uxaT2>0V~1PFp&FFuvw<=KuiI;zaHlSIR;$ef$q5hU`{s6Xm~ zMhpZB1|8}2qJ9KAoOPrOWmr}86lIk=p-@c~Wxy;U-ye+nhcc-_r*PEopZft^WB){+ ztMdk@><_bZGd&J&`8#*+)>Wy>m|S$YQYv@uG|G;{BsletlDO|rpui3+gab*Vj17Zx z1;LVMaM~bLR#nvUyX=RuC%Zr)EERVHWXfbYlu7hj!c7_99`9n`@;fZx^E^ASZk8u& z-K2~=omiyu_hd{Q2;Kw@ zUK6aT7lJh%~P0t$roc>xpUVG4;%n8Ipd4SJ($-nFHz65i5V#I|igot=Vs0rY}H<-xG+ zlI;K#=ri5j5v3LtjFlT?LtzG7+;ufwH9G)`o?C4YgIY{?Ynx-b4s~<73dWTwjHL@* zFF5`eh5}&-!@Wdq(3`9TQgTxvdc?U~T_d|WjykzdcNxod2Ao`2?q%8*CaW|^JI|OS z&uN>PkfFhIj^>^UI3f^vqN0060pPgBxZNZbT4kEMu&G$AxQi{5izZp5D~zi4AdykX zT6dQ?c9+R@M{ilHwncAPwk0fb8?tnF)opOGQ%GO@u9GK#(Qa|Oq#8VS7j4ct&=de% zwCq-iK7o}3uNgw~0|gX%Y)qAgMRS!XrEPZ;;6VG8yxA7V4YEL&nE^2Aw(>!AyFr?C zJNGHR#eavoXAEdtwh4kd8{{s%H|A&l2jZ7pyThETWRE^%7AT{X5>}HurO)yrMdYPY jN|;UZEqyuONrU#+nk1kh695UW7OWfO740*wP6GV{H8i-P diff --git a/vm/stdlib/compiled/12/11-12/stdlib/093_U256.mv b/vm/stdlib/compiled/12/11-12/stdlib/093_U256.mv deleted file mode 100644 index 5114e77f7fa3bb190418c315f2b2e2fa6f316645..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1125 zcmaJ=%Wl(95S{z*ecEZ9K0;|1ybBUiX_Qn&Vo?x$0&F9fn95ROSB_Iuwx}P%k_{X7 zY}oKGtXY>C$L@m#quk>&Gskl$bFaT_|Mm(1JOjm*6z)uZW;{4&&-D-Xhner9tA2_X z?n0>WTz-|&H^WiR08s-7WFWZ!2#6_(paTR$%qj$@5jV*w(94#5gRmmntSS(L1j zZjE4_V8dZ=eN3=Tt%2W;I!L#WZfI`605iaq0sJw}9Oue$#v~J5*Fj*I5o8V*v%s7M z`F1ecS8vL)DCg>3`o1bkkxVA~eK9*p%2Z6U)0GcpF&iIc$Ky1gWJ&Ip{#ljIdo`VA zRW(hUtgS6Ts-oD?71XqnDhI$s=#B2NWo1%?Is zx+=!Bjr^3Bg*?itc{j^XlW8^?C*|>Cmgbe6XZi6ot%^KqQ}ZgRQarNjhSLIJCQV3~ zUk&4o;{b&r7sn5>+azj_IA;>qEmt4B4I=2U*m?}1-0x~V45gEFp=x^|p9IEBx(2oN zF$-OA@|9i-xnnIAjyrKrKK6{^P4V1|`|^>NTniqEWe|@an}%jfhg%AAqYk_j>P}Pt zp;Up@EMDK~fQco?UV(1oe`FSA)L*#iU~th`Qx3L=q42PG_-q(rPX`dP2)lc&BX;>0 z|8YF)0jC>prH4_hxFNorlgFklcI0p&g%DSStAlHWWMY7L!>~a2sz8Wu#aC{GZtu$N zpu0-$Q<|~DZ?ZNV^<}enr43NVG>`i`wTeDwvYV=Yuzf>?Rck}lXzy^>Q~f4HZ;rP3 P8f`2FZLob}|49D=@Lhsr diff --git a/vm/stdlib/compiled/12/stdlib/003_FromBCS.mv b/vm/stdlib/compiled/12/stdlib/003_FromBCS.mv deleted file mode 100644 index 6291eb75bc211b2e9606878e36854754d73208ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmYk0I|{;35Jm6Iyia_w&|VO0D@7y_D+M>;0>qG5DS;#+uE5$QxIQ=GBp7f`aSwNj znfK%qI{*=Zg{Ni~?0oDuX>=dCCxzjQQr!}W09GIhi~_5`DO!sb7LEeb0Az{CkPyS~ ztMa>y>RI(X;bg0^jyRdkH7q z5Bx~N%w+Nl^PlAXWMvcp_y~+K!PSL~Bk$%(f8aRyLN8q63im#_AO<`Dq)8+h?jnI4 zKq8$gxAn*{t^qYUL|ROP2H3wVi`wS5b!!XT%n~ol^R$~K2M>+STAMyL&-1j&Uei9S zIveC=U*^^Ueqq~n(v*v|wnf&Ky$$DG)s`>Sn?t-sckjF$?mC%2hU-dmIjEM`BOF5{ z&I6zTqe~H)bu>-<34~0Z4tWF9M7zCVA(!!nIUE>nI74bw2?GWv>z7bw!yG3=1xoXQ q83C1HVjDxmNC_yjDRZ>L6{WZGM!yTncqjMlkKC*Oa!H>12lxis&o_+# literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/007_SignedInteger64.mv b/vm/stdlib/compiled/12/stdlib/007_SignedInteger64.mv deleted file mode 100644 index e3b62651c1b9513b4d5267c90b85fc7f8a58080c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmZXQOHRWu5Qb;`iW{e;DuE)X*nlF~SKV;{)*K)T#6&@9Kxq=hak}CN?6?d|F2OiS z5f!#&&x}8N{+aFK+b94SAuz@SR~Pa+^lqN?J5K!%^ny?P!ts_1V!#7HnncpZoh6V1 zNTgfkT#q)!HK3*gkrvaS0S@l+thDKES=-E3tEHEuY22)qM-P=vY8yXR&+E8KUgI_? z8tbQdo2S+Rqs-QQ(BzxAv{_Q;tqs;qQRgqkn?t-!bMH>sy>&AG3|E!rvQsUuCOCyq zocllqhLJcly)_@rAYk&W3mceg=NcAp84bj-Be>xVsY)db7@YNOQ2v0NcE3}UcgO@N n1rs|PLPjb;`9qGA9jz$3Q#RhqCZk`Wi+!P&|Adk<*MIl{YMM33 diff --git a/vm/stdlib/compiled/latest/stdlib/008_Vector.mv b/vm/stdlib/compiled/12/stdlib/007_Vector.mv similarity index 51% rename from vm/stdlib/compiled/latest/stdlib/008_Vector.mv rename to vm/stdlib/compiled/12/stdlib/007_Vector.mv index fca0c13f9fa22089f35b632ccb13ea8f3c0c1427..6deae25d480ce720cc5ddcd8965f04d366c475b5 100644 GIT binary patch delta 132 zcmaFCd4@w{q0DP;HU>z@fX|f38fywU}y_f_QC-*Xm iPYz_VVicU*!*q-Vs849~US=jnRv|_v2I0v^SX2P6wHY-4 delta 283 zcmYL@zb*t}6vgkqZ~olxhS}Yj4Wb!Fb}7_ag+{4SZbT>uD1S)kRTA#HOdVp?iR=KH@;)?##uCBwNHL= z_3&tUHoQSEC_+vd#!z&Eg}xXy@ z$;`hUT^{T=kGPH9MrbGKExyyeo}el^T1NRUha*c=WWv)C(2)L&=0LM}ndmO7#P7o+mE= diff --git a/vm/stdlib/compiled/12/stdlib/009_Errors.mv b/vm/stdlib/compiled/12/stdlib/008_Errors.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/009_Errors.mv rename to vm/stdlib/compiled/12/stdlib/008_Errors.mv diff --git a/vm/stdlib/compiled/12/stdlib/009_ACL.mv b/vm/stdlib/compiled/12/stdlib/009_ACL.mv new file mode 100644 index 0000000000000000000000000000000000000000..89c46c5234346fa17c1fddb58f7f4fff2d058370 GIT binary patch literal 470 zcmYjOJx|0i47Hs&Nt50eIyMG2Ha5_0fZ#S})~dSZPL=Lj)Rq&7nTbEZiuh&BO#A~} z(4n&w=h=Solb!dYuV4TmAQ&=Q`7?cCcz$l5m+lkC<{PK}g-rTNZ#ei+Bvb_P7C;FC zP2!jofI%&3mS(P}aH0^bE+AR`_Tg)Rs^qhVw+J^_;eDl)7{ zE-MLza;~m#&Ae&qrZsnQ(bbL0i(-_wZEU)1QCD4FR;}9sj+^`L$**FUZGYLOiJN*G z^}1}kaanEiby;M2vwGOXs&i#k#K){&%7FWZ%I!ksWYj++Og#7F+o^{U3^AqCKr=Yj zo<{-D!o;2gsRX=nghIq5NH8JI>?}%^`o$p!7|Zh+kZen4zWi4^0MdO*_lzmA;BdGv RhN;@A_5FU;)QqtIq94q6H2(kq literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/010_ACL.mv b/vm/stdlib/compiled/12/stdlib/010_ACL.mv deleted file mode 100644 index 773134f2eea099ed527223f864d498f52f79dc00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmYjNu};H447Gh{-{mgQ6qSvEjSUzprXpZtW?`tJCZI@df|5|d#s}~d{0^VMFCa1T z0XRjKYUzCTd%m;Y`#AcJ0ss*~NURCx_Ck1e=9+u|iJ5%iB>bSHzxa-OZ-#UfL9+ue zT7e}^Oa?&E4zRN93<4(J0|gfpa4|(-apHxX2L=+&i0A=@kx4=Vk^mYKHl&wRz@VPX zt6RBg+otX0u3Yp@Yx1HP3?Xv3ntg6@fvMT0z z`}n*n>)uy&QNGNZ2UW5gX#BP{UN!v(p$|Oh|;u&k*08L1CJu0gRz`MWg=b+ zp$=jawHcFT_70V$!6D=bnLeKasW&QgHkiJN10btVa=5zyQ?uPL{IS_!ri6q4f9r!V AbpQYW diff --git a/vm/stdlib/compiled/12/stdlib/011_Signer.mv b/vm/stdlib/compiled/12/stdlib/010_Signer.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/011_Signer.mv rename to vm/stdlib/compiled/12/stdlib/010_Signer.mv diff --git a/vm/stdlib/compiled/12/stdlib/012_Math.mv b/vm/stdlib/compiled/12/stdlib/011_Math.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/012_Math.mv rename to vm/stdlib/compiled/12/stdlib/011_Math.mv diff --git a/vm/stdlib/compiled/12/stdlib/012_BCS.mv b/vm/stdlib/compiled/12/stdlib/012_BCS.mv new file mode 100644 index 0000000000000000000000000000000000000000..6d70b3d7a84b1119fae93a5fdae95ec26cf0f92e GIT binary patch literal 98 zcmZ1|^O~EDfq{XIk%5VsiJO&|lU+=LLr;Lmjsqyl2!sqwObm=Hj9g5Ntc+}&49rf> i!CWQz@rfxZMXANb96)ALWl3r=P&G0D>I7;7Vg>**T?=mj literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/015_Event.mv b/vm/stdlib/compiled/12/stdlib/013_Event.mv similarity index 92% rename from vm/stdlib/compiled/12/stdlib/015_Event.mv rename to vm/stdlib/compiled/12/stdlib/013_Event.mv index a4b3a1b812a0c7d157ee28c1881bc0b6d464e54f..471738d28856e50121299408734233b044eba0b3 100644 GIT binary patch delta 12 Tcmdnax}9}GDI?3qGDju=9H9g4 delta 12 Tcmdnax}9}GDI>$iGDju=9E}6% diff --git a/vm/stdlib/compiled/12/stdlib/014_BCS.mv b/vm/stdlib/compiled/12/stdlib/014_BCS.mv deleted file mode 100644 index d66fd2976727d10389ab808b938c050b7740b0c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3074 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 YAei6+pE;Uh9s$mD;v$TxY3 zPyqD^0plRxT8Sz}MA4sGXR__qnWiy~%AK>WQM%skjT>iL7t?vRoEM9#EQ)27&1Pk; z_24mI-MX5S{6n{m{%xmSkBT}V|!z1*Q{1? z3`g!)BU<UYqvcmW-!6O9m(RI!E zV`T88y@u|O$r#Ru-Q{jK48yB3TnrmwC2WQp-HqidA-Dl9s4zxEBB8Hqzt%qHp8Z(h z*37lQIZ{d?xLwA_PRX%_!nG!eE}%$fi!r!_sn@~n2kzQP=s+5br%LX7XtyfHnMs)A zX&*lda2?Lz;OPpED~t6|Ps`H^4eg}*C+TaGJWmJaS(=rfo72V@X=dW$oTWyd zb8Bg6*H&!KCwXGVjC9P$NfN!l=+WLRo3#ya)j6A_IW0T!BrOlmdA!6N=fkw@BxYC^ z`RT=IGkf0(jY`xW9huXa{X(W-8s{5Rs8`|)0x7tZh)x4dfWig0%dGaRb%Xb-o}EAa%O zD(6+)9~qxCCq;ZBsarZ34F;#!2GdX6c#w~>(kb&Y?)xT7Y~x+ZZ4xysB;iVkhYT0gb1U+)={m;~?d z^FJ>9{mEGP^D}lhWAzz(Ib+Qk8_d|jjP++Mow1`CGZO}UodLhiIl#N}rtbm39r>OR zAn(Y#@_lhnNOC(9w+sB1^gw*zY%17N;DhYRb-9iAgzwxZ~H zF~`{ebI}9j;}yjks}IrNV<7N#@t2l*Ja7ULNF^Tt-e!D91TJP`E#-C;Y_bInn|M`f zsfBi$UX%9#FEhq;VCRBjThP+b)@&0Nz?mf7!Iul4ExhS8+mYZ+%~&=HW?Z3J+?}*! z_UTI3sd%Dsbp!Bz=l*Jl>SO?cPy*HALqfXfaU)%PQz(Y2Kugr+^f1-705!>aAFvo| zM^E;gE-of99&cRRsGd=L(HVED)DUb9%u!3Y)AJru1E7vglhdZ*d)M=!VP^>B6=-5h z>Ev+eDQHooDmFu+z%7TsZE3dUwO|2V*KRBB1#8lAuyXEI8rL^mHK|+kdyTaKdLEXE z+oMHScAO=erW@-UidDAxE~gLMWs1GgG>u!()0*{yZP*29qe6QK8mk{N=n$tPfg=u= ztom_%ehV(6Fy-0mtGM+{11wS*vWNd3AS5b!s_DU!m{hrJ-B=d1;0p1M-G0T_rRUJI z?6JlTl#G7GJN8Iuj+?S#W4$3AJwEe=%X|<_aDfjX9cLZ_9%dOjc&I%*+SsT60YCMV A5C8xG diff --git a/vm/stdlib/compiled/12/stdlib/017_CoreAddresses.mv b/vm/stdlib/compiled/12/stdlib/017_CoreAddresses.mv deleted file mode 100644 index 8977cc4410a0e4bae6aba3fe5ac7f8d596fe3961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmZXQPfElv6vp3sY0}zOY!QZ8h#&}VTzLY^Gz?uhg=S{9VPN9W%@h;8g9|U=Ej)sE z@e(G?6h_SA%X_~s{K?DI% zObD1T=3j6WIkNNFU`@5%TH~B?LRvdmCse=N8#}F(YG+NgY}$qH+IFd{y6&V>7jwCg zs!?Npxqi}~%Wf^}kxe%KL;I?CW^Y{Y^yW|_J>GhFF06TZ>wV$T^L?KlWJz|+d2wo_ ot9<&Gco+YXu!S%(5*`8~KYbvKSP0S#%BaMfNbs{5N`6Q13n2|Rp#T5? diff --git a/vm/stdlib/compiled/12/stdlib/013_Option.mv b/vm/stdlib/compiled/12/stdlib/017_Option.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/013_Option.mv rename to vm/stdlib/compiled/12/stdlib/017_Option.mv diff --git a/vm/stdlib/compiled/12/stdlib/019_Config.mv b/vm/stdlib/compiled/12/stdlib/018_Config.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/019_Config.mv rename to vm/stdlib/compiled/12/stdlib/018_Config.mv diff --git a/vm/stdlib/compiled/12/stdlib/020_ChainId.mv b/vm/stdlib/compiled/12/stdlib/019_ChainId.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/020_ChainId.mv rename to vm/stdlib/compiled/12/stdlib/019_ChainId.mv diff --git a/vm/stdlib/compiled/latest/stdlib/021_VMConfig.mv b/vm/stdlib/compiled/12/stdlib/020_VMConfig.mv similarity index 87% rename from vm/stdlib/compiled/latest/stdlib/021_VMConfig.mv rename to vm/stdlib/compiled/12/stdlib/020_VMConfig.mv index d4a4038b71b1b7f39be486752cba792c6aef31b6..ecd23444b44fcce501f634fdcd6eb5b6fb093665 100644 GIT binary patch delta 24 gcmew_w_av~22+dJMy@4a`EQ}0H49wy_lW%ayFnUk^%HgKu&BY2*=gQ5%&8W!Y$m+t*EGVbW>dnmx O(&Y`*wK<-XhZz8=01^5C delta 143 zcmaDZ@mgYn0n0@W-dP(>^f?4@0#3j7%(y3``8n;=WvrKrO6XtRO7{+zi}|iYz>={Ortva_X!;lRtB~srUdT bfd;rjBpq2@ppx9IAme<%#%+$~s{= diff --git a/vm/stdlib/compiled/12/stdlib/036_Account.mv b/vm/stdlib/compiled/12/stdlib/036_Account.mv new file mode 100644 index 0000000000000000000000000000000000000000..aa65760485e50b04f3631977cbe6d35d5f1135ea GIT binary patch literal 5235 zcma)ANpl;=74B^o^b7_V5a1$8<{~abNz`geBWvF*+4641&f*vu5ls>n78(F$DOJfa zKOm>1QaR+9WBx^|@(Yr`kb6$4INzHE1TCqOsluDrZ|~Rd^>pJ;$N%ZsjIlCj$HcMw z^6S4z^=I{k^}YIsaQ^Q6vEu$~x@!Ms=C?xsZm#A1drtWOnfpUf{(UqX{3R05ik{%OO_Yr~QNAm0A$C=YaB30=ZoHIK)ZF8nq z&cKxWv?`e1UIwaLoK!yIn_MY#j&ob?K+)d47;z@|fU0&C+TTQPbEckEx43P0uE3t` zf+u?5$v!ZD{~F9&-%8260U4Gey71`yqqED=<>*TEUhrP+T=e0kOVP)X zh(3#^BknV9aVFgfDCwh6Y}Xc+r$H7@%FS@wPv0_QLD{vqYjfL|mZFgh zMI-`L+Y+{~g|uN!*{(}`MFTAa=mIiOkPt#zd`seS=nWMqQwm{VE1tT9Q8y1oLD^N3 zKYgsaVM4If@klPDO}5f92tO|<8om+F8T*p zmI&lVBP)_vPHG&?G)0h1-_D)w?fyY;RK9aC+B3aTdpjBR2jzSHfw|La4a{(8hW3NO zpg$N|51vCnJxYdq_Q(69cE2Y-e{#?MyuI5qgVK|B*9=EVci(!_e`b2YlR?rOCfg+T zt}*r(W*c^^@MiW$sYGh60=NAMqH{OtB)x6p-#7dHVSAJcH6ELnpY=xx*}9kPCr{g* z_UL6bb9_jsWQ6;sV|J5~Y1O`LkM>%Fr zpI@BLrFKov4BNxPcR42y(`6}yvQZYucCx?JDw0I=Y!33|Ho?lXd*V=nqNg-YaGh4R zJhl9d6gKlDRVGM7)7fbh<1`6fGfG;?C|PKsSO)!ZbAHTp+oNLE z&BBYJ8l6AF8pogVO6Em-I6}Hc3+BaWfC_z64D$tlY~V0Gl`P??<*a(DO1A^SzK_}%2$xT@U!yHx9omgLSy9Z6$%IT;TYVFwneY#bMSA1?3A8|tkx_Mi61&`bBnM{wRT!I9P)PE97WnTgw`mpttlD-FcX zHZivduaa+yMaC4ZjFV(%QZpPN=O#<6zt!2xJ#agy*F{Qr?*(rxFe(%lHalCfIS;y-;6Pn zW2*Xn{^SIPlN4iuf8=^N+{|e42@XQ8`zb-|Gn|jy(i4K}M+Dg|DFpulhdBOab`TQs z#|pYX(ZUk^r;{Xu&n_4ppy|idvW($0;+sx{d=k zoCY2Xwa)|Y@NglPi^>altnkB05yx;Cr=UFU$=DKZPQgrLTZ>nsSy4J5SrI#;MC()v zuT9!VtQyxnkAi^Js;q}v_!Bc%u`6(u9B0CcO9J0gGW*b{V#K%Ang zS$NYITEzaM(jKyE`5r?wkSdEXlTr=M;sEm#zSQzHGpK2Ho$OXHYl)dutvW`bpqm#Z zdCKBqs=#e7>J;u~0IRjD>=uiskY~hkidSrp*H~N^xN%`ZSPRe`*qZW0O~nl{JwZpY zrSwufEoR8N^w2*<@*Fq3x9)M6Q}K+L`+-b3lbI@Htaw)7#)zWu zkRZB@WK0AoI2aS* zs=zIn^SFVGk_E7iX3evzp2)IB^R2Lk*htO8)oC7{5~q+OD!Qsy7pK7yS5dy%JkZ{# z3uv7}B|}?QL<6OY#HFb`Lz5>>Sr?nMp9%Ci)_hS>o2aymYT^6qMSG&(&*HBbj$3e+ z{M(m`6+#;*&x%*Xxm4ht`_Or;QGPzE_B!)R#P;l&*)3n|(%G16y{4wE6JCjXxG_56 z2kRdG^2p6iYq#Pxw0kx@uFeE9US0GZ>ukw)JV#yjWcZPX??l6jp{ifq?^e_uujJ`? zEnc_o!GSoR#&rGHSxn&!DzW6~@RN0P3syR?LZ?d0OyN4(A+M|CCHz$LCADC!cn)`b zl&y7<$l5{eFR4w8a=KPq+S;0R>Z|ISb(^Rjq-n~tzOC(X9j~a}SgOa?CnTasgvXI* zZ>^~>t*;6-Ew-HcN%hp)B}y5Y(E={L`kLxlL!wnkQ+PyMQopo*QsQvHt>_le!oH literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/037_Account.mv b/vm/stdlib/compiled/12/stdlib/037_Account.mv deleted file mode 100644 index 1a3465588cf2f4a091e256a0ecd694ebae2ea0ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6890 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 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/038_AccountScripts.mv b/vm/stdlib/compiled/12/stdlib/038_AccountScripts.mv deleted file mode 100644 index 3ea86f9cdeb8c0b62ca60599756ff1034af78358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmZvXK?=e^3`LWf(YCaR;zp?;;?5Je^$Z?h7{@G%I#b%Ipy%)cUc@7K5ien?E(8rE zyzoQ#|2lc3T>yv>lvKHziq0&F78i_f*w5}bXAMDcgKUQaM1>uJfZZ0A#0*4+m_To3 zt#4dd+o~u-9evjEwy4c!PueuWYhx{yK?lDhHzN067*=%fN784iyxy3-ahCF$!tV=B iE>x%SpZmAM?!Sv&a{!e>GLVAZzc^+VEz1;^9Q6s>6+m_X diff --git a/vm/stdlib/compiled/12/stdlib/038_Block.mv b/vm/stdlib/compiled/12/stdlib/038_Block.mv new file mode 100644 index 0000000000000000000000000000000000000000..fda9674f7260a64da141b7a3a8eb539b3289226b GIT binary patch literal 766 zcmY*Xy^hmB5T4mT+q-sb=aP^D3MwRiM0=D67Xbw)L7=wwl2u|6JJH&?lc?!<3SNSq zH=y7V=#Y2@#?GAxQ+Pcy-}lYz&V0T5+b94q2%6~upFR_Bh5Ya|_>4bT_>*Vq7uWg^ zzZZWI-!Sl=>inr=+r z)hk;sH!f;#Z;-y6UCidM=f&Ci`McSCKCpCM-xe!ZyQXX=|GR}fJV-Cz%NFZiFe~dT zYIj*!zuH$+PP?jXiylI=IX2{Be(N(C^F*_OOnFAHPvc-B<^wt8DW|#8$Ym}cK?Wm+ zM=p*SJ962Gae_jUD-C&|q1(CM4CeBm1E(;AC%{CM}FvE=);wiFjLrJ|`;J^2~k_G?( literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/039_Arith.mv b/vm/stdlib/compiled/12/stdlib/039_Arith.mv deleted file mode 100644 index 61d6433fab0c527c68fecb535bdabf4cfeae51a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmZutNlwE+5bU0w&F(oQ64*i{5*LIx0Eq+~5El--Bg!VQlm$7<6Zi+8;8Q$-19U@3 z5TYbcS51vw<#}nnu?K*FV96f1c01hM#&yF#V<)}hJBo*3W_vzoKFYUY}{L2U(#YQ$QDnNYN@JG&DQ-%HR|>2ht+gE zTT1G0AjNZSBA|G-WvW%!hBC#*`XY3in?3)tb8Nk1HW;vJPZ*k%C|O3CE_o()g`6%# z#uV7HFF2^m*z9x0v57|h7i?tc9$hf{4}m7O4vpT6yZSc_{)UAVgJF`dm-0d>33+nc klI+TqiEj&zC1+}L@;lp?T8BB8I;3?%E_FH#yE+Cw0k?20UjP6A diff --git a/vm/stdlib/compiled/12/stdlib/042_TreasuryWithdrawDaoProposal.mv b/vm/stdlib/compiled/12/stdlib/039_TreasuryWithdrawDaoProposal.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/042_TreasuryWithdrawDaoProposal.mv rename to vm/stdlib/compiled/12/stdlib/039_TreasuryWithdrawDaoProposal.mv diff --git a/vm/stdlib/compiled/12/stdlib/043_BlockReward.mv b/vm/stdlib/compiled/12/stdlib/040_BlockReward.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/043_BlockReward.mv rename to vm/stdlib/compiled/12/stdlib/040_BlockReward.mv diff --git a/vm/stdlib/compiled/12/stdlib/040_Ring.mv b/vm/stdlib/compiled/12/stdlib/040_Ring.mv deleted file mode 100644 index 870e433ee9fc90ba055fbebda1186a8e2267f49c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1292 zcmZ`($!-%t5UsARo~66pwiCx85LUAtAQBv$VO3bKNc?~`B$F^A8C&**gabdog%cNU zNPGc8`~WBJ`~^Qj^^D^K_vTKtn))ft3qy==~}6NqiCE5Bx2n z57Y`ilh$9!nQw&lJAG7*pK;)R#r~K81Rw!`7_tNjf)$};sYtO5RKPL}d^n0?mN99T z+E@X?DFxVU@)lcy-PpE{<$`Upl%m6O(fMeniY|4%zuWaWE_T`(XI;ZN6|1Iexwdl- z0|O!kDFP!{V>mU#%4DyP3Mp!>Iiq$3?Bx_G#PmpQA0tUV$FMbyL|x%YHPx~*J)C4} zK2_Oua{E{*mluW2hS(`H^wvatsrR7oy7EVFTu z?$%~2FW#oR`PLvE@9ghoMM=f5$UMwsxR==}{z=1UkPrK`%Gl1Ca&nN4xbyQ%$S6Cq zQJT6$RyHI!o)~C6(2#&74eQX+>QS`28}_I)R`@4WEsGj8^r)@khDgLyYj9SUE`L6m0yhInQzIZBXL8_G~3pE`ApHT^?sjd(u0 ztWoHn^Wyb6_^OSv2EL>;cTQ-0Y!ju$MLNs#Zje76I$a}|lYsko;+qs#jB}E(ayKJ? zoYS$x2=(t|X-z}l4+M66J+)j*B5E6cTS=SSB`Ip*+ykL(I#;1cg) TE@Yq&ONP+@zIY^^aOmJK&@O@( diff --git a/vm/stdlib/compiled/12/stdlib/041_Block.mv b/vm/stdlib/compiled/12/stdlib/041_Block.mv deleted file mode 100644 index d07b44aeb4a27b3a651892709fe7e3dec64ed94c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2561 zcmZWrOLH4V5T2gb?#_&~T3M3g#IfU8&O0IG;VdD9IEjm-C=x18aiZ8-OG~^JTT<<= zVnR^`cP>U#yNaZcJ@j<<^nBgZ(=*$zmjBk05Tb#!XzL`~ z{0sOmv@3q6ufh41{~_Jisv-YXk@{1I=4bQDsr|Ol!397lVT2PwByosKJfd8LaR@Pn zkeVcXje`U!9U#PUI8su_Rm7)^kcO25K++UQ79^4u;NmtQN(Veb78UA_02(i0aO9|m zTO(%TrU^Rc@Q#Jz(` zz9lz6^1G)2r0+HSz;F5se#>wB9Y63o-sbE|McBBCs9Xf-g99`P9< zJQ~^0DGe=E=-+z9DV#)>0Y;_pL_IR`#K0P&Kc`e#76o)*gR-H3%Ruwe!nKPm>k)Bx zf7pA@?%vy}-5X}fR==Mmd7k8QJIjVyF1BAJgMvSZ^F8@^RHVZJf07QKc~8@WBroEF zk^Ca*6~nAn!hDt#aX&6%b#E`}Js%CzL7``CUVD@rmUbnmzZ>UC)SFs%N_jsn5I92Y zB8jr$u&C7I5#lCuYBgKfn6VKCo4uS<OT<{%o3 z4|bExw-ckdG~L5(D+`du`{}ny@NRIUY}mtmMHRxqWdFfC;V!NQ$6QURsqWK zptqmojX`oaK~L;as!xI*N8*;t9JYJKntJBWRLU`HfIE6ooMU+{U_TyJDnIyJ1e4R$soybR}(j_UY6ME zI!ueb=*?E@Z`+pVP@X`vSLR+N2Wb(N8hkhBKVa@Z6PdYU%H5iB!IW!FxrHg$oN$VE z+B;9Tp4@x<@X^hicWsG2NaB8y5h|A1aYa|eDm#JK81FS@C)v89-SVlxH*2H3_ovut zd@T4fTM=j2Dn8Tr>fcbLL0S%U6l`$q8YY5LWB)Maw`Q1Tyd{=2J|#S;pT=ou+1J1P zI*RzvR)7O(Yy4Gc&@?1X2*L0=4=KN(cJWVm~BR_%T1V@ZthiNFmlJV-Gz2K-(II7^7(Z(RBgJq-3 z@%Ut1`ro($rcv`Xgi8B}YLj7;;+FeW?kuWxeyhp>6}Rz(a6`ta6jC|UNV@z-5D)Pf zsFJg_p*A&DyM$@^(hg2T)CHcX_{uAfHLaAqrOcY);<<+z;QR-`eCb+fd}ivZekpYM zce<_{VGYFhB~z!m2HKhVv00syq_}U(#b%D#wu2rs!MrsDt|3A9oUIlT5Xyn05zv59 z+gzM9iUb=D4Sg&DY;>lZoH9*%5r2Px-3f@Gd!968i(=a{74dAbpO}hni`r%cY5|sS zu%WO6ntU39?o1$Iqe(6jij53V;D}5Ez#tLn)CG)m17jvwXF|z_Gj|ErcpVE?g2U_u z!CBvF;~!f3vaPZ5e7CJQ4qjVJUumJKW|}uy7*K4F&=c+fb3p=1Yrs)v7?z><0d^gD OX>2Eh0b^H${o8+}AC!Io diff --git a/vm/stdlib/compiled/12/stdlib/044_Collection.mv b/vm/stdlib/compiled/12/stdlib/041_Collection.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/044_Collection.mv rename to vm/stdlib/compiled/12/stdlib/041_Collection.mv diff --git a/vm/stdlib/compiled/12/stdlib/045_Collection2.mv b/vm/stdlib/compiled/12/stdlib/042_Collection2.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/045_Collection2.mv rename to vm/stdlib/compiled/12/stdlib/042_Collection2.mv diff --git a/vm/stdlib/compiled/12/stdlib/043_Compare.mv b/vm/stdlib/compiled/12/stdlib/043_Compare.mv new file mode 100644 index 0000000000000000000000000000000000000000..4c8e6794b2595ccbcf03e942248ddd1306d364da GIT binary patch literal 526 zcma)(-AY3-49Al+X}7e_O%F#A5p>>9VT$5~s1GvSVVA?<(F?(s@%g;-2~6wQ=7nHd z@NI`dcGLS8*$LVL%FdBFcGl@NZzOV#hy-)A5f&^7 z4^Q*O`KWFFDS^whX?0j;3GE9yy=lzgsR~#32vAfg! z8YcbUi|Of#nIE%$I`3zb`OoR^Z2f6J47D++qB$k}D z-qR?o2tV~1!#HJBq$7>dBG%f-QF*CjaS{(;l#_sPF(OH%r7d=u!k#9Tjy^JGA3iZ; zuRfDf4idK9JNlvk>Ocbqd9Y0(cJXWF<;vR#OJlt0k=Q+^9BhXUlagHHBY$W@N_G^sn7-)%Ys1NJv6gqloLouw{ ZP^?0Jqt& z0mLL$Cj_IUSz^zWl4m6HY)l)8+4&8$el@usm*t{r8l6;k%h@8EHaEAA%c}AB^>X%& zrmi0Bs;SfYysFDIdELll-QSwYreWznVgd><{oodu6WUP+V~yg)VJJIi?Yb+A_8*Nm z4g=}gBDWoQbFSS>wISHZ_M}zzr5_N<9i4G+9jl zkSFD{TR!S&HY+FNGb*oQE?xzNznBM$|R3 zv4@r%xFXjE827a~(2!1A_3lM>A!sCbUHhC$J3vHtwRVsVV{hWY+RCu;E#J z!`V+M&wfb)1OfpP6rcel1E86KVGNctkVpmK#?5O5GzWu*&a6TsQwKm92sC2hJ<$0` zH5p3C6DqWb77$4X%VTsvOvZyZ#hhc2zwg?I*j%>FuCA_!t{h@@AEr>ey}Z)Lynfep zZP)ATx@uy#tm07Y4(&y`*|fLKQ0(h|$R>Pq(4CTM->%EOtDAbL%YFS2)1GBs^pD_J zc9PFdQ%-QWYtH{McRtQt-xuX}+r_?L+}y6&&ZnY@Uy7p-cS;rQZh0g{ykp0cu36oD zW?S2$ANVQ+Tj2+tE)+KYjfn!z_-6UJ$au&w;2cxP37IJ2VFg4llbDkjliEY#aRDnN u$#JrDkl8?vRwRuIe*6rXd+lijfraKG#r#k&Nc~5>NA7@}^~LzZ#`Omiz=Ci9 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/052_FrozenConfigStrategy.mv b/vm/stdlib/compiled/12/stdlib/052_FrozenConfigStrategy.mv new file mode 100644 index 0000000000000000000000000000000000000000..598f68b0c2b371e3dbf34887b56198dd25ced6b4 GIT binary patch literal 2298 zcmZXWe^eCL702J3nKv`LJ3IRZ7FYxY3W6eNK?SRv7zB(zqO2fjW5Z@;7hHs0-Caeb zYMNM14N)Vdh{fWMBUa;yL=v&0HpGV0VgylZgM?H$YWz`R;lxHHMf&D}EjiskK6~GN z-*@NUJNN9{L&5*h@c;k~1TrIwtp8T75;CX?&JZra)2ukmVSYF26r}soJ&x!gU;qm^ zfB+An0C-*iKp!|;1uFRJ{k?+eOV4bqZR?^ zr-Oj^m&k4a3BZ|1C|)K@7)U}f;~)ZT5R0I|2b05aysE|q2>fJ5B5PiP2#NqgC@~Ub zL_lno;YENLK?N^~fKde^BsMh8ce^&*ohdG7o+Cfg>$ZCB`6X;}%Bw=k8mq&((8iB! z=~G;8d$P^uwtGBw51;0CyWAdW>|veNX0upxb6p#pUOy{QxxJQL8rDK~)N}F=mwKDa z;&3{=4r`%fvt7=kiC7999^~4XTWB?M8hu;dt4gN`OccSAhYQVTy)B^kf5AIOUK(KRdP|JTYJwGdWb@mB4!CC9`kp!WLo z2R9H7o1lHTcc`PwT^~A2W zIq+rkvH*mwOJ1`7Qi~FDI1{@tv*~X zwKhyyGJfXTV&eH{ztR^?!2ikxy;mxguHVy>mYi;WN9R!LRW zx{HU8_`f@A&i%gfIB^@oWqaQ@*A*9O8zPP0*WSw8fUuN$MOm}2reco&4XNzci?b2l z+-H9>7&<&PsAciPQ|q^XgK+onX2qnwWgT98EaBg;H#OxV+}AnXsJYf9p1u~7TpYWF z%!c2ew)t_E)SZz-k+EertozB+4Zcy6DtRYYXaLZ&t4XM@T=Ju5cav5Grpm2iQjp1#n$YsdeYUiAC%ABdb+kn{BoBe zaM^3O5ni;u+C2N)KigUT(v-5fw%?OC7~Py>%RhNGs?Bx8)6_kHu(l^`g>LTOTGxfN zr}PyhMIroC(}$Zvvs)Xh(|&t>gZ=6%gjq+(PH^To%);GsUKu?0h)mtqs@k&$w(J+L ztp76fyeIqfii?LlroI+N0i}|5tI`tBPpXOCs9tO zjHaAI8ABOMIhAr6<&P=jDB~%oQ_i5AsmSPv+O!0^OjKkYU=Zo4-bk9P<&cI^m|1|s zFWw$$yPjOuJ{k$?$X!g72ovA`loC;r{{cuIQ3zxjAWNo!Wkhu_g4Mxz5lkHg&Oj$2 a;QuFq3<(Mn7ptFuUM~X1?hM&N9 zQlxA(GdsJQ-LLtdQvhHQ6e%g}wY-shd!?7p<{M}B2i^1+@6JAHa3K(Y1`q{-90&`E z64a=(LO>&^xHL}?SSyXn05V!aH32Mhg%&`9Em<E_oGSLw8X(P3*hu z>$cs8l-w@1{Wkcn-UXL7AHm19f3LSL<$d4eQP;VwDZ0tgzZ`N%CF*IFKtiyzq$~}| lSvr_OMR>$mQArJ?94ugp=Xh^O9Gg^;9I#m6<#6Ztg@1jSDjEO) diff --git a/vm/stdlib/compiled/12/stdlib/053_GenesisSignerCapability.mv b/vm/stdlib/compiled/12/stdlib/053_GenesisSignerCapability.mv index 0b2013c1451644f88088db741227043e300b7469..c7e787b2b265ab815a9eb27849492a6cb811162c 100644 GIT binary patch delta 94 zcmWN?yAgsw6hP7YKCJ8V&FF*%%PphmbL#4r`E;oUiTnYM(!en>OL2 uDIFS$Q@e6Bt!Ilk8G#!fk-NhcBn2%nq;x^645W6$ns?u>LlViCNgjXL?hLj7 delta 105 zcmV~$y$!-J5P;F|?rg_6|5Y|&0fdm)!ZV~m)GPo=7D-P{ML|Wy9MpO5Wgoi_=fA|K zcHylleKk}+-Pe<8yI8^#D2VuoBnLYLN(HSkq;Z0_9;9=I^^ZIh$2?w7d0a20NHyQ& GppFfa)(@xv diff --git a/vm/stdlib/compiled/12/stdlib/055_PriceOracle.mv b/vm/stdlib/compiled/12/stdlib/055_PriceOracle.mv index b8584e7754d63d0f975320ee01be7b17fc125d7a..e70a19c6aa9ea7d41682a63b8def70046b69bead 100644 GIT binary patch delta 385 zcmYL_F-`N%Ljxw28--r!vcYjSX;*FWGqE-WP3Ck_AEIBpjmJR4!{xE za04zuwVfzoEUT*Cd-ds-%U_@WH4*?cf+U#*t1l?NK=Ch;>E9x>f5Z=* zeU`+z2n0a{q#|USS&R?_AcK&Atqi=4M94N4p4URMHBrpgDzDD8x5=2Fj`_J^hUUyg z5rr8~V9!lFjK#=mG55$s3wF3z@zdlV z?W%h3#G7ikkyD&r@vjftw%EC$?CWaZ9Cqcls)x4AnnN>`n`)@azP;^gw|Y#J?l5%s z&zk-^tMpk7H~Qo@qI1v~#eKXvrC-trwZpykkCjZ|m^%tFn@JY9AaBS~*jjkX5l34H#0a&>P z3khVfAY=@}fWb8qp0`^<&3%f9~x1zjl6S-G4lv;t?2d5FkN;0~$KybbEy3pg_DMKx+paM<5_R z7XUupfG#o=&_hmZA2~qKI6}H1Ad(cZWtV}n_IBeP+Lhg>+u{H<;30GXAGoyph$zd4 zoS~y1VW0SXOo)0f2tn@#wA-g0e;h?1Z5BsodZ_&v$HYKj?=3sJqkM?e6*e-FyC_kBZ6>D4FtwRK9eX%dEkq=2C<2W3xr2 zIe8I@vd3tpR7#^3_N(aUGUQC7&wWqQu~w)RQ(6gZY$lsOXOdLcr%B};&t}Ccue&Ej zX^zvhG*x9PH7U!YtVX9MH&s?mvw3dHlVq8Eoh`EZ+WV@^X6C$1W(%X%hw`HM#^n0q zdTGw`%c4urUz!%sTFv<+ughyay*O#C;jA=CZQ^-S#h1p!$vS=C+C>8%Q$RYJn>tRD zI*F@dRnBhWwyghyyOH%(vt*Iw^Y}8E)kPU)c~-Z0YXsN2G79?MM5UQ$Rc*=!skTM* zZ(M5<-PMw^n+-(pF00?BW%8~~-O#;7pU;wI@S$S;WG!=Bqjy!LtA&a4xQ&2O}VYFYPvMqh?<&(nOoYM%&pk#sMuB!6VvUA z1WQ(RVdKoQjvEPt)!nJ7nQ?L1Kb^dqOwXqA@ynO5C(~(=<=>KaX`Gbv)s@L>a*)Ee zn7f-!+RN#Gk=0tv=*>pO_Yc*c`L3p>*A2BsV4}Bq;C60AZ+UMH_UL(~9-IHYbUdA& zpPU_EoSnalU!R{}v;{b+Sr%1R)5N*`L9V0LW^5#PG)E?O<(|v-U3OP8hWBWY060Sr zLND}v*^^<{zLz}=d%oxi9riuuVFW(!Nsk`^Lp!UGk710A(S*a^i!t+g7(KJsc(~=V z00xI*K>Gphad7B^9Ma_TXgHB`o1BcCC?9lu^iVvKPwBmPARIpSSilF2Qwl&ykPwIg zqv;69#+=!yhr**NJQhqfJUT8}#E^R;bf^emj^(t~7NpwK2&p&~-g$x|vj5MCxbox? z(qsV|!wsq=30RMf73;iDH-wzKwKJJh>6iVZYG)4Fq Di*-ux diff --git a/vm/stdlib/compiled/12/stdlib/063_STCUSDOracle.mv b/vm/stdlib/compiled/12/stdlib/056_STCUSDOracle.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/063_STCUSDOracle.mv rename to vm/stdlib/compiled/12/stdlib/056_STCUSDOracle.mv diff --git a/vm/stdlib/compiled/12/stdlib/064_Offer.mv b/vm/stdlib/compiled/12/stdlib/057_Offer.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/064_Offer.mv rename to vm/stdlib/compiled/12/stdlib/057_Offer.mv diff --git a/vm/stdlib/compiled/12/stdlib/058_EasyGasScript.mv b/vm/stdlib/compiled/12/stdlib/058_EasyGasScript.mv deleted file mode 100644 index 16d8f1836f89c4825f53cfd9e12fe71cc0890084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmZ8dK~BRk5L~Y}cG|e4fP^^k3Qk-(pq>%jEvwlUOQ?x#m#WX<5j=q#Kj9O^X=o9a zJUcTh%}Vor^Ia(b&;pcH_q3Q6kJs9NiSh&I<`WnFP5^=gAqZ%|0y9?w*BM1AB;cgT zbgD8|I-?o*ETbY#B~55bXb8}tD8vM$DF~IxA7>9P?iVgTEraip9##Du+$OF#9PFqY z?%L?n+;4ocjZ4nPb{m#l244G^IH+yc+kCb2>7@y7XV)&;6|?0{3j517r=#PVCUA^( z#~f^G?J(bNFNW+kxaBL4>Gf~AJ=n9ukx|Y6-|9>I`vmlTNqt@ztf0b5+`&+xpfl)& RK zOftnh=CiKa%d$kv z6E1ko z6$1A!Er9Q{)x{;W_JE@|pFQLyBpz{$)n{uwi$v`bC!)Sc!8URR;reB_|2Rhl*~n!O zey4l|;ghQgT-1yy}Bnb9XOPAKZVmT)SVpb-A)oy;m((7AwouyA|-PVLW7v5Qzw_ z23PJG4?-5A@etiQo4BH3?Ue}LCImr{vaYC3&4#+wU5ZSKs_BYL0O=2C&--_G3dZB zGj73-@**uyxWq>)ZcDuS;7 ziTg=^CpqZEy=TqC=5F#XNl&~1!+R6&rQKfk^P^tpbTcHtuEUkJ?9R^gc=7lB^{28RuifnrX%TwAVfP(DRu8f%mzQ z{J98p+&)ZCqBa&Q|6!$z@waKOxtB(L*8++qa}cM|ZnGad4MWskFK%KZJi?P!;1;Z; zlT5L!PEseGBu$#{l3&Lr=|{czAnB)ZFHe3W3~sNN9HvRPqa7n@HxJ_6DH>59Lq~U- z?O0NFzDx0VHRIM%Ve)6F=y)~g#P3}Mr4cfyt8+2?5uWo^ppDLc8o2}#Os9N~gT|-M zh(vCpZzHl?JS$FF2BZ3z5rW#&y|~>yjz4U9ame0t)9NgaBwZ~|$8vTk zd2R;GQRlF^_e-a1hPxC-c>*6#qDeCT*dhxH05+o*$Z|?c_tL>c^JJHjvt*^ItcJMGI zY2;L=n|Pu1(&%7tiA6(00S>=AarvZkjK`rBHG2m~ZHysL1Ljntw=Rw%ourZa-~`eW zW#Y$0@ODUwAQ@x77-RcmEFNPALyQ4`#yRjU0l>EdD?oms;kkw{HN3!&8*M9)TjDGA z-9UT~uX0ddsVy-eUWVMC+zddz65kKR4?_OK(PfVx6eKmMnsR&NjUAGp50xP&tRgF> z;#GBpSNuw_qAEc(tl|TXacP+0n;7XSfuFQf0zeQU468A~2Ogn(je(-qpDyMME38=j z{61#VSK1ea`xOHlXtRzl2F|#?Su}iISae_oFRVV6GGAETkZatChN^P|_y8Qlv5p_p zV1#4c!VwM}G~wQ7%cIKvf2=6Lpl{&5W`&0o;xd!~EE%Cp0Pxl8a<7RpWJfqY2k8yS zvzpap8G#@GWz@SE0l&6{#OtF^XDGwW%vz7{qx(uT&v5byzG!UjGf1GsX! z$2AJ0g5Qv^V!_F4A+nh*5(U!E3|7=J+vx|;cbRtgX7S#jI3jbMs8wcVS{a=sy>CoDJcPH=}Q z1Iwfo8oX83U<%vC*VGi;!2)YDaidLm0#dGL;V!z+jevS$ow>El6x>5*u)c(i3FReB zDqIh(XQfpZ29+xe;+$1}4>kIxU&8>aVzSD~f;MR{R!! z!erWF6F52dxd*|KxR1srb+>2(L@~`R4$azf?gc!157Dhl6Y0p4Uj9|c}uoh53PaYbuFvJtMfDm^4 ai9H*dQZzUMu7pt-nk=5fDGVuomViI+@={0u diff --git a/vm/stdlib/compiled/12/stdlib/067_MerkleProof.mv b/vm/stdlib/compiled/12/stdlib/060_MerkleProof.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/067_MerkleProof.mv rename to vm/stdlib/compiled/12/stdlib/060_MerkleProof.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/068_MerkleNFTDistributor.mv b/vm/stdlib/compiled/12/stdlib/061_MerkleNFTDistributor.mv similarity index 98% rename from vm/stdlib/compiled/12/11-12/stdlib/068_MerkleNFTDistributor.mv rename to vm/stdlib/compiled/12/stdlib/061_MerkleNFTDistributor.mv index bb8c651a7e8ad0a5f1660696ce1e189bf69436e8..21a56f784bd6b882257ffa1021b6e2245f948e56 100644 GIT binary patch delta 12 TcmaFO`I>XWG)9(<(?eJQBHIMC delta 12 TcmaFO`I>XWG)9Jv(?eJQBF6-< diff --git a/vm/stdlib/compiled/12/stdlib/062_GasSchedule.mv b/vm/stdlib/compiled/12/stdlib/062_GasSchedule.mv deleted file mode 100644 index a88bc854cbdc989962d4af5fd31115c84138bce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8488 zcma)CNt4`26_!+0S=Fj)_u{SXUfk}@-5y(Zx0h*q?7@R)^RP1m48tN+QdX5{l~kjp zyUV~Z!wx@y-~d5z;K+d>;KYgRL~tPZ2b_R^z=@a2)GL)r>9!)={qlX^%Y4fB@@1yl zzgzlmlPHR!t4c#_G%BQvaj3HvMI)_- zs_9xq1r&b4Z`<;Nyv)M=(-^t3gb zwKC%iMTOZ3LNlgOTsfe_%Aw`enW0Ogx*Mf>0>2%4I0e6YmgmvoISYIXW3x+r8iCg0 z?#>UAw&zAYQ}_gL12dX`R9(}jTyQot2Eky|2x+Wqr=~g525-WI>e|dHRCFva0?l+Q z(^$UU8?`;hOzz&+wT1H>hjuzA#(;)qdl-Xh);mDsy@NvZzIusU+reOHdV!rBMh?CRRmBG(Qq`=I3IGS3rVLdf1eq?Tibv{TZ@qY_tkwz+XGd%9lG zwnUi6vNhx8@;RA9_YPGRGF+=I9NXu2|+D6-AwIrkECZ~*+ zh2DmhggvmbVzCvKb;1_RI64-HtxfI{Us=yV1Td-72td?ZI&(v;)^SeJgek zX=Frh7sMo_26guC+}XWn9@5b540C;7zn1r)ZAV5Nq?<1BOOfk(TRJv7tx+=gR`Wyfr{55l3? z@Gq~H*^lSP)@BLEfdf?-49&c|%S$E1T&~>Pf1Y`VbDv|uT*7HBH~Uw%@_n;#(a;db z3voUZQ*!NviBT-u4iY~$Y}naZl!SF!C$C?V(zACg@ckr&I1dea2nR`np9CNk(xw?f zl&Qf^Q*cC!VEfxx&pR&CCi8f7e%n}|a3c;5pg{OmpPE5Oyxh+A1T9?)2h_H$gYm^6 zDW;9;8=?X&Z|2U76}`l?X87n!PY`K8Rh{~y_^B( zrV|)&m^y(0hpH18A?=^Q7z9UxasOUEpkiHHg8}s&Sl%bBw^Cym9VYi=ry|frxZI2r4_L53)+wmPx@Lgc-GKV1~a6CW8NRQRD%?(Zx3-3f8e=~W1SGIV6 zaGQzYmKe#I%S)V@t;w|Rq;&57%Cf*iC|(KNo~V5Qdl&PN6AA?cZh(H*NNHvgclPmp zb*+>Mc?fGeH5#pfo$Y);1Pm8OyJx|@3`&k;L7m{^8`sOYzC(}M>dyLv*@m47ZqDqe zJh39!+F})i_qcj#f)G)A0E_ToS5RJlm>*Q+YBaEpd^0@*pO~*J%UQK^Xglc|1DJt0 z?Oc?%t2-qGm??H(Wcv+IFG0Rxgf^X>M7UMhG*f!m< zTo1N*UAuWB@5dM?*J+T%%#R2@L$I51eC!+IJSnzN3>vTWTbs|I@NI$?9649bH?z$Z&`RL?d$T)HHJ@bG2_ByZxkZ z`bobHMLX!^2jCqr4;yazPz8k;2u9IyQBD$Yn*m+)l= zc6GlCUn1BkNY^ebFxa6TEAik?%eUurrWH+V!p*6oYU(t6O=2Ie>VGGX;DZ%^TD9p~ zT_K=O9~9;)uT}w3$p`E+7d%BoLj?-Lrh*C-1X4u>3IeI20tJB(RG=V`Ix0{QNCOop z2xJNsCYWwSGlR1}2GDO8{!kQr2yGKEcvn;h) zK`IKu<`ODU5XdSjP!PyvRG=V`HB_J=kabj`Adn5I*PBR1LD+1e0tJCwK?Mo|*(N)Z zDD054667j5FF{@)AB*x*9OoLDme^cJDhk3kLpldHkcxt^xrquC1hR_?6a=y-9p@HO zQ4lt_QGtR$?w|q%f!sv}3IchNye_G|`%>TTNs;?xO)}Rn5%`lv`V>8QKu$@JhtkNs zOco_JpCIo@kVm8~L0%zuYaA;2_DSNizsA5*L>`kn9GE~}CI6BjuaO6mxqhAeTH?VQ zSgYo=bhCUDCtoO@6d7+76`v}ae7eZ^jC93)mOPTY&F9EN3G#XJX9@BJX$-z7joaJO z=)5D1!Iz{l__8zxUy;V(U2;+KK3^r4r0Tp!79=)bBma~jUnjRE$Ty@Oe3Se`lA)$F za^I377Wq)(K^t?ZxDsq4jtvtl!I2_VigbuB@t`ZU=@B?{rcco~muyRrZ<8|;)v;YitiQ` z-zzFUAb$~aB1+}=i;NFdbU;u(QVIMiJ$;1c2P%12lx?B;;e_T#Dh88ri1J=LHEC7n zNcESb(Nb!^B6IbY(p0Lyfu>sfEt!K~O||-a(yU^REVS5t=*Mca%7j>1X35k0`^hbIK?8hBgduchAm6}00|`a zNQj@{2M~XN#0Ritu9LK6k@3u&b7sb#`Lz4TYXC?PB8qN^oA2aT+)+R9Bbwjzf$U$| z*YDM}=!;7IH%0Mx^_h~NhSFb#n1?_hKmu4YY=kffK*pc}axqFIlAPgK8az;dWF+W? zu_S^QF^r8@ory^YFIkwLVPz?^P-lP?_+0Zw2uo(j4O5EpWwz3|>#rA-a zxDzl}*8^rZ8gOyvY-D5WdWlVK&-HuYq#M{Zi#i5W=n*}k17W;iqhl}0fy1S*mM(Ii z+^hp;EC3xU&>fKSJUWw5cRmVQ$?8?6D}veqV-^BTM6*n@co5>qGLRgMi>fUrWzjr; z`bs}(n!1^b@c3fZmUX3Hmd91m=+V(pF>8}?F>jmtd{~^!+H=FOgKAR8$3;7=Chf3f zCw*2{?c>pGbXZQy_FNq|qpG#t|FErHIUg>h3_sOp)jWN4+EkZ#-4t)@H-%uiXfz%- z#hhUiS=Ch$7{O+vX;X~G=fm0Q;k2B;F2?bytrcuupA`DA=3&lkXf8A+Loli8_L3(j z<#c*M4td_D|9>d#DkSXjG9&C{g(2*R53qR8;jQx4CJ|&dhwC!(kmDVA2rBlxle{Vj ze#3J%=4IOlx$f}+#FWx)$VsLuGm!Z`Pj?{~L;;@eM6l0NI+x_(K7*qGR!j|6=O$+{ zwZ$JjmoYC1i9kaeVeUM5%&ez8BEAlUwe7B|RD42Nw&(F4#3B-1@t#`ewOrH}w}45W tRG3D1Zh*p7@X9Qkaa}K=58{(V*x0-frcU@`DkXbrV7g$KDh_Au;2)FTiPr!C literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/063_GenesisNFT.mv b/vm/stdlib/compiled/12/stdlib/063_GenesisNFT.mv new file mode 100644 index 0000000000000000000000000000000000000000..59de3f76bb59d8f63089259d60c76ade1448ffaa GIT binary patch literal 1204 zcmY*Z&2Aev5T4=BlDnk-)`}y?PUE(>7AX*)gx-SK4SaA4RJkuU7Nro?{$NEbRZo46 z+`-|_Ej@dpm&NBj%b zZ~PP2pORtncXF1!SI72)`V)KqYDRbj1{?%PpaqfvfKmWjgOm!%mnl>r4lN24M`Q`X zC=QTPCK$#6EagE@Qt^I_3^XmnGy!}_)NH~GQvx56R~+~Hz)yxFrWEfTB&ft=AkP$~tlB{& zg;Gc{RwGC>`96}^+cS&#$nG+5AI21g+%=cIbhTUi^{XFV_g*xedp@6cZoPKv-sRlY z!7se)C^o)w-OnpW*12DY&cC?{O~>h&{MZKH)ct#!%X-m#cD!<-oZLsRd>vktZTZHp zeAo_``|3r#2!*FaMU;_1FWuge`Pv6xuKceq_3NUdbT=1qJHBa`T{(9}Xm;sg+qxY` zu{ldNuJennncq~^wjd3wxv6#vimqvb4NWLl#rmdgS6k`px%-7*mu>(5%?(~&yt{RJM>?p;w4rg-PW+rn4n(&^4E>GoWg zxvCA@UAPye>@n1VBt>=j`c7Fab}wtuHC3^B7WHn<^3GMw#ue91)t39KvU|}*OA;3} z0iXXcV+Z*xl-+gX>-(pXv7^cBx9)U(8#%pIaY~N?7>*Db%PEyJhGWhdKG?mzGcB~r=0PaPE^<4o{V~yJl}AdBgpswMk=HEF_^P7r-`3(D-F4cLrw*gG3jU&%kGkpl5hZ1Y2un# VMmYAAW*}Bd46(&VrYe3p{sVR{-Y5V7 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/064_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/stdlib/064_StdlibUpgradeScripts.mv new file mode 100644 index 0000000000000000000000000000000000000000..3e9fcaba3bda416d9d9f559f1ef94a303556c5ed GIT binary patch literal 2143 zcmaJ?Nsk*v6n<6Jdzag8&*IrKdy+|jgiM%86X4)@vMI|9v9n2_R*zkFn(=g7-R&gK zAAlc$ggA2Lz=ecJ_y{+m!`+Yw5o2>zWNnnkx zonsGP66I?;r~W{{CHfc2r-tzjFKFNK5BZn5zbPsbpuj)@6*SPn023^*fkO@)$U^~K zD8d*aIyjCFuB#9rrl|uxt3dG$j$iHtNf|>=P<%`BFfRECNhT#JQ6y86n`TI6B$-7= zFekYalFTDf7f?l8BpQ$<-2l35bD}saIRd#=MDiz*Sd!CM9RlX5d;yfxE~duUfKXl6 z&mfk24aUG&9YMq6WKUE+FPD zE)j6wUPg>vUO?@_J0uUqcUM-4GPZUS1@?QVkUG{xVX}B)V%}PqUbI%GSEo-}r>57e zGuGJ&qH&-aXM|I(FiSOn5d(;Z+fs>248k<7D#WH3S5kv08n-C3C_znzwkA*mIbtaI zVW6tCLRLi!Jn&OmYABS{1VvF8Gx}P#J^)a_6dS!rJM|`k`S8nU&dOhw&nN^9~ZBfs{IMOO{)C^m> zN}PytqmhU-73ui3Bz_^H0aVSBAQP>gbzMXv4b!{VYNa7t4O@{&DnTdM4clSX%ij*7 zRySyg2O>$)IYV7_yV(>;VLPfk3BsYvtsvI6lc3%ftXivZ-1nNpE(TZ1zC!Jyg>J{Z;-6HPOGFsmi-z}|?HNqOIX z(jj(BD`;aTSP^Bnn?zO^g;^N1!xzFxLU_# ztJRxTzr3||?`pNGC88n3{ybj!6$Nnz?qmbr38Uuuvo7;E&d)wQ!QCjY9oFuV)r-NVPKr)U!e~{@Yo|}jaU;dD`9iee5 z@R=LwVwk4gSGAi~N2i&aR)8RMW;0LQp~+=^J+ew~M=I<5<*M!x%bo$EX}I%e3K5(}@r*l5RieN|-T`;cW1Kh$d5Qy`>S+WQ)et5OVW2v)b7zpX zrIx$IO?TPTIdj;-y*+Ip$v+4x#un;u6>-Q|C6 Wb2w*)!3Z@ai-{b*nl*wI3jYB0>fpHm literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/072_Genesis.mv b/vm/stdlib/compiled/12/stdlib/065_Genesis.mv similarity index 78% rename from vm/stdlib/compiled/12/stdlib/072_Genesis.mv rename to vm/stdlib/compiled/12/stdlib/065_Genesis.mv index 78701566bc289c4f9bc8bc6bb1045d23b4addc26..33844f2593aa50b8af308821bfa077d0140224b3 100644 GIT binary patch delta 507 zcmWlUyKmD_7{$M1-`H{N#J;J0o4AgBlfGyjr?2p)DNradv$8Oh3WipSy1-H~GDWCD z3`j^FSlFtJ-5C&K;NR$f03G-|+@H?5_j{cCCBBFUXUU~&5s?EL8Ka>&{%nX3W>WcP zUK#e8_0y?d`hoS&e-G~}n0y>;pHPZV0yU}6J zmUW$*X~v;%d75y$%j%A1-1U0Yc%$b*&3jx_*9)LFczlg%U@zJ~e z!`-99SFaDAACF%i?;pIK{xE+Fe4T!(zCb&dd83ehw~&RK%fjHPv^aqroLaT-SUWwh RO`N{l=hszPOrN=b@E<9xKN0`{ delta 502 zcmW-bNpjOb6o%igZcEl+4Yt&=6v=I8a1u*)MrMaFa|tfME;n$6EsIo=9Z*!UWkWt@vv>uk4R* z`%4ttKcX`PKjW7dv*QKUBw<}rz7c>B#|~wgWR-84xT+iqLkC3JJrig54QarSw8a>L zG2$>CvvRk<)3#-cQf-5z=FYZ(rQ4tt&1+1(G=@*wBm{IFPM9+j+%YZX(Oy7Kx!^U^nh zA>rnT)vY1pcCbbry}ke?cep6f8=&5tZFvWHvjmpux$nU8lS z%qKOQw4UI&3CFNGXM9nQIAik&BP2Lu+B1&f*_&Kg?Jg|sg59Ag*q1;&{#%M5X#>?Q^wz>-C$>_2%`}>T+$Zwo<)SyHf?%XvPD^2$6^o)Cjq& zT?kl!#shR~d0xiykcDz%0lQB|GKRIttvNn2<_qo`juYe}=5WEaXMLa_&J{@4_`*6H zn{XV@s*kv!@K4Z!z%>C!BigsoVHiXxvNlqY!XYg*nT2b~4>KUvI4NJCjgcxE85s>I zLQbToLj-6XU>uT-Gk{>^Cg9_U#Ta^{z<>+^*A8m?ndnr;#_Otp2}%ZiSV3-`iBTiQ z333A_OOLc%Ve`*a?3Q@(*-P)y-d_Kxmxhn~gZNRWGl+-7c6xc- zFCHet-Q=Jb4<5G<+pm+iNqXXr81AchFYOO!O<( z-W+k7e%;56-$k$cos)$bJn9~$(YqvlL$Z?0ht@~NI@5`V>7ak|vF8c@Bkzlu z{HX|3+&xTBqAnJz@NuO}@z?2~y_ZHq+X9LuJc!fib$b|F4NcVEAZ}wLT*8x%Zvj@) zN~Ty=E2)xRk|yo9$sb~!45LAOkPOp!5YFInr$A9e80y|2IZTs&PgzFNZ6Cz>DH>5% z155YX-B?nto=y08BeXCpQ{e+DI^OVm@jDw&IYUNOwk{UFgJ*peX`{EFMmC)UldGKK zpz*m6L?S!i@nGRQxu?bBuOqTt`cRy*^s{Q|3_em6Q^ zkJ3KosXIsA?n$(t#BV#0bOfCT>bhfFrtE5)q-W;F8_#4gnbcr1iIUEmH*Suk#3a>S z+w#P8@eH-S9zJjPI&Wib&)tZx@C?&M74`SagZTGH2@*4hIsbI$#m?@t-RRMiCtvRD z?&8r((#WdLxAA%#q|w3XN{hyZd>ns!{t8L&7!OA$Y7Y*Mx)?)&2F$8PZ)_YTI#-$c z=seQvW#-3)|7J`IKbc^^onZSDES_KoV~hcR!a49A0l+`=jR5&n!RHE|Dfl6N@o3ut zxg)-Ce&mbic(H@?g|j0@#EXD?vztE1AB&&(;->-sGQ0Zm^Ma%Tr|HTkg`y`yCv&fi7GWf8#ne8yTkI&pI%5f6nrZQtJOW(Av}kjAQCR!x9zH z)$F_GKy&Q>c@mh~mz_#R3#Dp*TYTE?Q?3pI|n z27`TXdd8vux$F;HC$!TFU34g3=DHLmM&kp;6GuSsgRdxjds2R^SSfetoIfGD6uwXkz7a7~Xae zv^Y*43uRN|mfXh3f)?9G$3Y9W0j^?Un#)aCk$t6Fw!t11hi)DI5a0$i z5Ks7~3pcG~d2*;o(%`^*R#&_h9#sVunbHB}a0#a_~ z;10S_EuVT~thstP2W!amH&?JRfjo~%1)G6!jWmvdQRR#4=-0s`WE*ch?0~l|ag{B# zt(;{nFSvLOxZpCEy8?e)fM7oU6QQ`m|2=%XZ&{63p(bjw=G4@hUNhCOs%p7fzE-HR F{{T>1nu7oU diff --git a/vm/stdlib/compiled/12/stdlib/066_GenesisNFTScripts.mv b/vm/stdlib/compiled/12/stdlib/066_GenesisNFTScripts.mv new file mode 100644 index 0000000000000000000000000000000000000000..b7c919154c3c62050477b515465a3716f6423676 GIT binary patch literal 121 zcmZ1|^O~EDfq{XIk%5Jog^QJsk6lKI!%l$5j~^(?$iM`|j7&_749q;tTwF{H%xqv< y&^o_-GYK*>F#rIFm_a;7 zW-!IX#LUFV!@$JJz{$wS#v|gHlA2eNnU kTvC)@8K0V4P*MrB1{p9iFtRW(GV?K5FfcK~n2bye02THb^8f$< literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/075_MintDaoProposal.mv b/vm/stdlib/compiled/12/stdlib/068_MintDaoProposal.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/075_MintDaoProposal.mv rename to vm/stdlib/compiled/12/stdlib/068_MintDaoProposal.mv diff --git a/vm/stdlib/compiled/12/stdlib/069_IdentifierNFT.mv b/vm/stdlib/compiled/12/stdlib/069_IdentifierNFT.mv deleted file mode 100644 index 44d5f27272aecd2f94a15d3e82260ffe92ab259a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1493 zcmY*ZOLE&r5bf?6V1OAAACaO&N{*F}EuTP!E$35CB~@M|StMDrAQ6;NrT`WQ+0iAm zNRMiyD+2-#$lZ7MwgNIG0h_jLDr{icbTcgKGj7XStbn)I3Y;unfMOe=1G|C?NJ@gD)_8(J5`4$C#weze5OgJjt|aoc4JM`q>;cVqaJ`P>2;#kH7>%NFgAa?q0EUP0NyqM=@Q!I+S{`Tu1+^_1os@KB0->sUWD&6mkt1_?s=M`t(*m!n% znXj6lGcyL)xB8;Z&dNm-?%dh+O%wmPnrBV^Wwy#Lie=GkORJk^FwfUbUER*|>s50* z{NJwQRow4Ixu}Axys_l7f;ZteMcM2KovS)48?RkwP30HsStm`gSG_6M(k`aXo140v zU1XQ9!sqPm2;4ezjtjc^)R?Td6bFnPeFY~!&U02t+%71F= z?6R?YTa{$XI?v{}yUJj5Ae(l(v3T|%_7Ku?$VIVSZp&HpcOgM<_NDfHiH3^8A6z=4J&O5sFm11Ua%&%p@{-$X1(q0pc3$ zI00qP1cg8^x~txM^-A4cUtjzT6##e$F^dC!{7DQ(e!(;S9e*+Jo0yv);*JCe3^)jo zpp??Um_|Z1;ovbu4L%?DV2VRQu#pH{D+C#ML`mPLokszoF@_*!$^gzyj9MkL2yihc zo-HvUfmtAE?P=5|ilf;K4PlZiBLl`c3PT4n!%!LYff4hEQWJ*^C3=8}oGIf2hDbs( zU=;8tr}cW+xDQRyW@~qmw`J3J>TO+JmW4WN`m(N)^DO_I74H46I?XByT6Iwtm1~a= zReOtfS$*EtP2FW1{n51@RW9?a%H75edw1Jxvg(c7xqRrIy`CEX#o1;uaL*3sW6k#D zc{i-C%l-fud)42ZJVpCb3wLVx324K zefcz>9>}^~+4XjHYY$Xdxf{FPUw+XHt4-Nm*%908MO9ahX64~RKmo{ONE8hWg(Ad| zr8HJ!;>9qgArD0;Q>3pZP=*tjGA71U-D?t`$q`rtm;|pyM4n;FUyT9H-hL%fDn@-O HlR1Om0OO#{ literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/070_GenesisNFT.mv b/vm/stdlib/compiled/12/stdlib/070_GenesisNFT.mv deleted file mode 100644 index 803cfbad5736fb932c885e0ad731821ddbb67af5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1242 zcmY*Z&2Aev5T4=BlDnk-6-SPp#7%A~QlLHwy#=uw_}~<%b6;#MN+GKK!HQO@zCxd( zy%*>U^a%>|+6U;dKp&y#aAm`(1k7?~zWF#GcZWY6|7{WgFbI~}FZfp*@e2;+Z}Fm?!<5V@O8{rY&kmVoO5hPi#c_WC{PAeal;XWRdiD$=;BkuVV!llLzdy~Pz(2R!T;ba1+5hWUdMxtgSu^HnT zLypK3%QNyii{!}YGR-vH;#1%zp(?F3Qc?V)RuO@+BTC6df{;$lnB-h(u9YDGk??3V z>cpxJA}N(ZinIw5Brf?rlh|9I#d>6S6}V4hib8hHWp7;NHh%N=>vz4^b?aU&7OmTC z+@^Q2a8>Y2?^?=DFJ1fH+R^IFZ$j(e--Np5!K;%`?U|d;cCBoUM)lJsZbGRB+x6j4`jab!53@)gG>D;FR9!uM0{k?xYg|W{Z%>o0YyEO(7B^+N%Sq09VaiTS-qv-np$^45-`q6KdMACgaNqOm zqUry?&%vAXx93+ESNW^6vv1F@u54`Yu4f%3E{aeb6m)QH$nQiI`?H)>?qgmOCjaQe zhuoLN%IVgv=pbF2xv~knF5T+{br|YElAoVVd8TD>Y$E_>tt;?_L zvMKhbX7{4=h9oX&BtHFN#wO#dP_);zukK$=#tvuiKDd+3ZRX@w#R3&hVi7kZBwdL5%e0IAyc~`oLih1ft=bWi*Tm3|BZZR`zk4u`${tqwB&jlNdQi zD-0Mh<}W$pv7D%gfH6VD{K0J0w-k91M+!1NfRWBK$o6hF zH_k}hxNt6m<6l7h z4Ugmx_&a)kiJ!RtuQyTO`C5PPe_(#~mHo~CQ3ihmD*Q8WfxwV)CYWT3c?vvW%%VpI z<~xmZK^kL1xD!71z+<>6Kmi*uKu<7@+zBH(&B{&$%5%ohA2~76#)(K1vS3pToQN@W zVm9sq=94a9!6Gus`$P)2*&Gz#S$FWby9uDg9&7;<`}adyA8c>Xdaywj_0A6M`Mc{5 zA0Be5=e;emjN)(>E?CUtaXeW>(Uiwr#xp*TCbL--@kKndku~u&T8~5w$}*6^QCY)r z#72N}*pNv82U>0{dbR7U9A$qhfv&}LtL_DGWw|6!a_C{fKo9S7fWa-ODXPvdsyDgcg;0q>S+(iq>zC(6bCzc|%bT{YuDdw;Bj5di z`}v?FuE}){$TwW?xpulYG~w3J>bP=>*#>UV;f)ybo(xPFOI@oZ7N02BZ z4+;1h zjkNw-OAIAMYeGZ5PXj}~BkfblQDSXi{6n-d42Tvtp%q3tVn>(+CP+f7~-syF`{&fsE7xbNNf4>8SCw6r` z4jj5W7B`%Tx6pVXw&lc~xe}}lxRJ@^*qU3O3rcDX4LzC{blpHN{}Ds&@;sm>A;Pic vAx~z)m&Rk!+C#&WIq{|;L+xQYlGH-vXp#lmK~KiXBAKIWGJ=gE#+dyFEJxYd literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/071_NFTGalleryScripts.mv b/vm/stdlib/compiled/12/stdlib/071_NFTGalleryScripts.mv new file mode 100644 index 0000000000000000000000000000000000000000..b3b1bc6616d60d18162dd85a73106b62c476bad6 GIT binary patch literal 174 zcmYj~F$%&!6hvqK-_0gw2?|z{!ot=*C(zDDFA%~8gdkxP3y zWd^_zMon$@#vZn=Ip$&QpSv^=0*W(GSwKlnP`f}>l^*KVN`ZpRye8Yt<#ao@!w}-@ o+Qs`gPpe;(wOtp+IiF+unEDXY$-f91P%AVLF40yfSxQ5}7wv@=tN;K2 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/071_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/12/stdlib/071_StdlibUpgradeScripts.mv deleted file mode 100644 index b53e7f3f3f9a2d1ee96f357fcec55bae401585af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2068 zcmaJ?OKclu5T5_vr+3$nwc|L=+vy{1fR?5tT?!Z1N!zFohphXOkX9S}x3k#ZwRYD{ z-4i!J;sP8wAmGTIo;V;75=SoFkU-)kAt5dtk(l3)k|v^S{j;<4_-5w+$Nzjh`-d(A zK!U&uT{$i6{6fUXbXxk3eo2(~#dlQoLn9-9X6zfEB)_6)NPvO>B1j;E0xBdx104)V zLJHE50TZ&2g9$}RgQh8vPAfpph>&~UAV9J&aw-Uj0=WyEhdk#eIVo^5MUfoi+_ZpX zhLc$l$sFhAIaxrWED{V~R0zmL6;oP559v6PR1rz$1QMNdY7q<5PHH-crwl@r1@+Whr@~3lW zaw{1k8$e}4AOG&ms#28@Rp534(M6(CWF?Y- zA%_xVb%dgvCO{NLK~M*Vx;#{%KoE6h=pd2-M^K6A^57*98A0TMzo4KVVFtmtg)#i* z$w{SiRR~+EwPW$ct`WsTM}8?KOQCmffzq>$SbOpT6Px&7Rw2 zcUTx9wt%)$rO{wvrs9|PT+bf{+i(N961ufE6YOf)z;)Z+7zz?qufw9)?R2GT&|@YkL07xCA@{zY#lezsnG|fhV$>Iovc^ z_Atg?h@EKAO?-#4b!>q!=pPVG-56}-`0x+(+||unoA#FNlr}bYHf>uDS)H-YJZAii z%{PZ|yxDGI(brjD z-OLAD-+b|2X|DC{?vHPN{VBiB>}qL8qs7Jh-e14}^wC@1a`3tJtDJnD{tR#b{m*Y& z^WhKP_xJzoXmowe>o%fG=gz&>vA1gvYWJG;_}Vq^PPJ5W!$(!t+ik7gyWrjJceYEx z^~()!=gJ$~H}B)U4pK@3Q#TC-47`ptqTo*_W>N<;MF|=ZZji>6!DZsg>Yz}$$p;}m zieTm_pF>2{LFPk`Kc+zW^dSkHcf_2qaPC9jkD++loS_mCA(Kvl zIcrgaq)=rEDX>IKBKS}l)dU45PzBkkGsvPf0u+sexn$v7NC~5y04&8)4cSl((NJ~4 yN|?)rluYP&vln!{sdc4Lur!0Bf5Os{Qgi7)Ujv86C>Ws$&Wfq0O4G(_k;1}yEopiNkKo$#c?lC2+JSkzH;;ku zwR#r{0CEIjS<6;syDC2%XAdm(6F0F!AVAE4DXAonBuP0-D#+A0OqsBhAHeyT%0V9Vjpujyu LtY1K)e;|Sn$x0z& literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/075_Signature.mv b/vm/stdlib/compiled/12/stdlib/075_Signature.mv new file mode 100644 index 0000000000000000000000000000000000000000..2d57b33358b2a2014d49ed0adb58e83b8329240e GIT binary patch literal 343 zcmYjNJx{|x47Gii%Y8&q%fiAxU@E9m7#I*@L>-X2Mj$FaTf?ELpG4F7>U6?yuwN)BfTj`J$Dm2n32KMu8XuXkj2C1z@z4 z_#j)WWXu_lfSw#s2m*B+x!94HzyN4bG(>giJ<*Zz1W0JSJIX={aNwTm*QOZvJ^P34 z<6TwtJPc;jjdk0YEtg~4J1%=J+ll*guCCVW)lEJX?{!s-oOk=@H=ffI&wc$eFXUi7 zaemsf^^o(f8)x0L4XcJf^w92D9RGh}NZc+01YD{_r78pMGfXH-gIb!55(*@)2uM=N GXTTo?`ZYHI literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/076_ModuleUpgradeScripts.mv b/vm/stdlib/compiled/12/stdlib/076_ModuleUpgradeScripts.mv deleted file mode 100644 index f2d215e295f47705bf56c11f22c759c52fc43203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 zcmaJ<&2G~`5Z>88J6^}JlhQ(k5Qqa8PCfY!94jgXxURPG*0qS&mVeUr33vi7+>m$# zj)><$;w2cz2`UA#vSw$#@0)L|)qH;VQ%OR|1V~KdfE}0o14QB@EWID_jrm_hEWe5% z{4PEL%79S92q%I_;^85Tc?0evLnai!BLN$t+U6lgcq%YN5(xKEE7b&f83Y*lOd%RW zNJQdI3CyQ6@VrGF5jaSYXZK)^g6RUs9>y_YM?TiRKk>nzMzbi67eg}(1(Tr&C}Y4w zynu$3;RiB=38BdTrsb9g3Igz-0T`9xgn$ARq6x)>9h_EKzqW7dyfK+wu9~9mTKS@K z7ey{#HBHsD@^#%6l}pad>b=SBn`?J!943ui7P+&{{ay3u^wLykO;uN|S$pqn(_-gh zW!%cHbw3W#_1d_n_S&xc&gybI{|`>rTLb%Gci+`)PLA9DyezuA#9+MGQMZRZ>g&w> zJ*({+MDv^H|EKj;(Ov4YaJnl>d-xB3y*W9|ZKwB!y1S}$eQ8=7m@I2-+v@7#XtjM* zZLf>A)8{vOM=58o^k#gidEK9{i}q3v*r?~OayBm9#;l7>npI?6rNv#meSrDd zz6MT!MI`ZXH8JH16io@GL*YkcC>2v&i4<^k5EN<)rj+ublzUAQP%!}W021|tPth|> j+2bL>Egw%3rF_t*B1xzm)X}IG!uLore>R$>5^3@aR2#wG diff --git a/vm/stdlib/compiled/12/stdlib/084_SharedEd25519PublicKey.mv b/vm/stdlib/compiled/12/stdlib/076_SharedEd25519PublicKey.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/084_SharedEd25519PublicKey.mv rename to vm/stdlib/compiled/12/stdlib/076_SharedEd25519PublicKey.mv diff --git a/vm/stdlib/compiled/12/stdlib/077_NFTGallery.mv b/vm/stdlib/compiled/12/stdlib/077_NFTGallery.mv deleted file mode 100644 index bda70d9e15f10338f3b469feef051e14342bf596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2178 zcmZuz&2rpC5T2etNi!qukF5RkCb1Lem%!0XND2a#giu8Vs-WPga=fy=RrboYtHkk< z2jBrXaNrR*<;0OU;K~J#TzLR`M$+08sA{LDd%o_kd!{wopQe9lNeGF7Bs6)CJ^B^+ zcXU_0rGL=i2k|!xzmK}|$7nZQPd0VfSefNwOD$Q1fer_BIQI+V`NVHI(8yu zi4z;F<3v^m8`QyuUGF~Xc`@$$C=-$*QfyY-i$#>CGvCgOxM2oz)jdS+S#4*$RLkE5LDwQw=_h1!p* z7Qm!og5eJXBd87y8fps11Dbj_=|_SiXClxNw3`PF6lCig5$aaamBcQu2JC`dWOy-a z12E>nO%&m(!DMAE0xxKwBEl$k2&z8+wKEzVPn|Zai(_p{tWCDv6+vBqy4FUh7tg-_ zbnp1MSf0zL%VoJ-iKnlNMa9rAzc{Vt3+qXBJ09J z?}Gb<)T?S)o;QI_t2!*+GM67<;X$LbaJ@+BrkFCI?279m*TvV`cG_zDi8i2&Y|>4< z;K)X*NUvwf7Vj!z0e|#y+HyT02HzbG9}&^VcZdRT0xThxQ3?d`g+n~LN_SiOhidYO zyiYz(Df55;0Zb!<2FodTw((Svhj?j-rg5yn;0~I?;%I9&5x#Dn#|=M;aa#9A5a_X*d|7b&ucQN zr3rLET^iT#Dwh;f>{3!1H_~>fW*5wcD*RM@l3Jl)n@`0MA(~oEl@H_d+vYosBfab> zI{57YxN*HX2;221;5e~Lz$!%|u%2lwupZ19tsI$pwvY91X$H3I%BG<|uH;`wQ=g>< zho_MP?A&R19>>kLk(v)K49E@sF!;J^ERZX@!*|5Mt+`r_h?y3)_axRA1r0DK>=bw5 zDLfaz&UuIgj`?Qh4<75n-U)>Ay`$NO5)V~4tK%_#l_0Jw!c zjHrQO39~~U3LOA8pk{W2JA)T3c4*?AM1nv(ficC8B?b}RQQHaaIz3D@u^l@xfPHl- Q5ZDoZqY+O?1{uxBKcMIgkN^Mx diff --git a/vm/stdlib/compiled/12/stdlib/090_TransactionTimeout.mv b/vm/stdlib/compiled/12/stdlib/077_TransactionTimeout.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/090_TransactionTimeout.mv rename to vm/stdlib/compiled/12/stdlib/077_TransactionTimeout.mv diff --git a/vm/stdlib/compiled/12/stdlib/078_NFTGalleryScripts.mv b/vm/stdlib/compiled/12/stdlib/078_NFTGalleryScripts.mv deleted file mode 100644 index e9736e40d3098473a75e9cd4f6390736cb29f34c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmZurI|{-u82%qg+L|B=PU7m~;N;-wq??QGrIaW_TT2W=j^i;rf@kp(K7#1rzkF}_ zFQdCw0FWRE785a5a%Pf6NUzv4Hyl4B1OlW)07nq?QYhaFRfObiG7FZB2H3Eq3^MGm zm)liQRn~<~=?<+wb-s=&%F?!e;B0+7+uYWz5BWZ}Q}2rAw6o5{Qf?dX!th@;M%~XK b%ID+1hkyc*HOztVLy_o3r3Q_f=0xxSXZ-MX5bgQioms6kk}NwUIJO}%RHce4PCif-jH6IFki?emTWe`7Z!GVM-Bl8} z@*lW!;mVN{XHJ~?5&Q#A^sKy;U`m>LJ^iNpbx-yF^x!We0U#uBM2|Fk@&n<&kU;!O zekAG-`Zo`LS3UWsdKLW~{6>*TfC2*!0wgF1AOsBtBIrO2UFdZ>oB+{U0a)ZhpAy1h z!2CYsxQiW0fRBg*wHpKw?@3K~bkAVi491v`7#4`vlBGIRJ4$2A~e{ zPH;3Bg8Im#j}ehaJ4oz34u;S@MmzjuM444W$N9=j!Y_&GHxX&RJ2q)A_t~Rplx% zUKO)zIWEhhtcK6a;(M2$75P=RnABxjyTy0*bvnDj(9`#A4mO#d$w{`zT^UZZTUXWT z?Mh6G8<)phik>^Sw`IOwUoNxi`qj#--B#{H6ze*^^oo;JSuBgi+68WvHNdnWdHZ?L zdPgaWFY9FCa#v+ll5Xl@3s?8D{B63-=1E#E*0(ON@6WTUF0;#Z?Gmi1ZCG;UT-9H% z=2&I2SQeM*GO1C@2y@J^H_1lNt*cX{q)|G5v##pI`F;)m%PE@%ckA~#x;Ls(>~OVd zT(W(x@02FRRrl-h%kkvJBsqQd>|#8b^h)>bI>TpatFhNFI|!@m&H3b-`!T+M!`xvvznFJs&1J$#@maq zpfy?GKL&oWKyLt|@Lz;u-7JQ~*CKI;aMCGGF`<6$#p4((x5B7Hu7p;^%HtSLAkr~t zYJ(UI(KvfrXlX+{lZF~$0;?mmj5MKPh8t}ShQ+T=$KVA+zib6S;}%F%CNSX%p_m)U z&}YSHNNoux)F_2220kT*)wV;K=UyN;w%tQ6MX12`jyGy!VH>rYSbM-n;+|r*e~i}P zfbWY#MbX;MaKenVJN$|GOi3(K2R_+YYui2IPn#4Y{)Kp|c+&xtpiO9Z#kmPoaLCUa O#vXqu&Xqt0g?|9PsuuD9 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/057_TransferScripts.mv b/vm/stdlib/compiled/12/stdlib/079_TransferScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/057_TransferScripts.mv rename to vm/stdlib/compiled/12/stdlib/079_TransferScripts.mv diff --git a/vm/stdlib/compiled/12/stdlib/092_TreasuryScripts.mv b/vm/stdlib/compiled/12/stdlib/080_TreasuryScripts.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/092_TreasuryScripts.mv rename to vm/stdlib/compiled/12/stdlib/080_TreasuryScripts.mv diff --git a/vm/stdlib/compiled/12/stdlib/081_Arith.mv b/vm/stdlib/compiled/12/stdlib/081_Arith.mv new file mode 100644 index 0000000000000000000000000000000000000000..5a0bdc47ad7b20dd6210dab05a1c9982a9e6343e GIT binary patch literal 395 zcmYk2O-=(b422y#nPlc=L8UT-pdc!-Lx>_O_MCzxVhVyv{E3z`a1PGLA;3-%gCiw& ztoQOcpOY_CL{vFq;c;m9Z_=(~elQBsH6)aCbzWa^IxwGStQ+AF;>1C26^F~>%kXP|+Z=?A*nAQ}Jw literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/stdlib/081_PriceOracleScripts.mv b/vm/stdlib/compiled/12/stdlib/081_PriceOracleScripts.mv deleted file mode 100644 index 9fc3054e32464ca19f39e147e1cd114bdb85369c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmZ8bOA5j;5S^K%shWTy=*p#_E7!e+f(HmC1_?-8(sbd{qj(ID;90zcX$x99i^sel zyyxa41puT7obfH+i{vm%vj zC-00s`rO>?*?3olS`MUzD_qc*Jmk7A8*l8~+pDXC^}6gjqN$>5*W;YFMez64DBY{7 Z@AM=NA07h6WIQ#$r diff --git a/vm/stdlib/compiled/12/stdlib/082_Secp256k1.mv b/vm/stdlib/compiled/12/stdlib/082_Secp256k1.mv deleted file mode 100644 index 5f0dd612f4273ea6dccb1faa22d56d430200a532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmZ`%J&)5s5S`gCf9%E=gM|=+0vbxh=`KpgMIoY~0FfVHImr@PN$hCtB#LzP755`f zqM_igT}ws9*ufGYSglqw@4a~|&CHjl_gVpfMo>&eJb5L?LcV+B-Qaihf3Uu~n_ECV1(=#$)N4XoFTs4fcV_0UHQ8Tx?A z2Oct}2+$4CB<;mULogsi&RdQuFn~rEKrprQ?fKq~!bo41Z zeB8~}`TV^-MlCYUmqk|ZoPA;Eiz-W9c1X9aBwg8K`q`D6ba0W*j~9$A43uv25vnUhK1VzDP5-+-+=8i>lmMQIv(H z?*4v|Q+G~>`&S*qP*b1Ux0y*`A{d1pJ{L*`9>nUUh6g~6BuZ%LL&6xv=Aoty(5#P1 k%#AccOL3+}3_~zn#zQn*bH-`z;(w;dWM_&AZ2~1f0Yy)2RR910 diff --git a/vm/stdlib/compiled/12/stdlib/082_U256.mv b/vm/stdlib/compiled/12/stdlib/082_U256.mv new file mode 100644 index 0000000000000000000000000000000000000000..fbb223ad108d0598e566bf57c580840d5588c978 GIT binary patch literal 1411 zcmbtU%T5$Q6utH8M^*PcV0fc~sHnjp6Cf->po81d#i3$e_H-w93nD|Jnl&myl3))arJ>6y5HGH?)?-E z=bc>9pQRIgkrz(*O>^KGaS}u>k%UZ&Lvf_C7O0*B=DT3pO2z{Ve6Y}ZYZhF$tYKNx zvMI}^Eo%utW-M;jvN_Aldbzt@fUG zDeZ2H(aBIJ-8?>xI>=Fp2wjQS0LSTBWzC{dC5}&eB26LzuYg%V4=_+}FU3C2+&t~r zobqjyrLq_2W9+Ekh?CRqFdlTe+0n@;N^*Z3Cr865PZKfj^}@xMmGV z&-_4W-ZG*U%I2KmGe+6lRnTmplr)SPVrCL;RX$c5PF3AHO2QS~MEpSN3F@AFq&%#u zV$H!zNGPBAtul8ZBDofK<-;-!H)2gba3yyISK`v>61Ug4+^WG=rB%Zk9Vlm|to6Qh z6dp%&e!WIsQ*nj2WRw2|<^yJ*Q*A+0`&UV2I9lEggrTkdr`rK)+M|Gl%jf7}}-yj5NP6C8jIW$TgHa%t%LtbL1^*SA+1VZp<0IBEUgzP`=_&X6E&xnZ=evhAfR@( Z_BV}xXlQ6SLLwy!1qB5X4FZIe)(ZB3tPnf0ogg2A3(!$<1P;X| zn7D}8)sEi0H*chUU+2F*1^|O#$T)R6*S98mxJo|o6U{e`!Vf))jzFM@5)_CDfEETK zQUI}*l86jOkg`U}tcx82da^*l3#1e05uzlv##&2GE_y(NC;-)=cSHl@2#_##c94Y< zU_luf9(4OuzE-Pl*RZ=;-dz_(!)+ViZ@aRt;w9%@-B`{W&g(rlXIxBYv&m()U%i#Z zs^e_CdtP&&9(iucmwqG*%ROgD->Bt$JDttflT5bAgelvMH`}h)Rb8>F_+7X4hC{(^ z*VKJ>Xe6fpM*@(DMjkwlRZyu~fOZQE6s2B`lLZCxB)=yhc}f!0VhE|19L5kLu_ZzK LXfc>meL?UCh08)- diff --git a/vm/stdlib/compiled/12/stdlib/094_YieldFarming.mv b/vm/stdlib/compiled/12/stdlib/083_YieldFarming.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/094_YieldFarming.mv rename to vm/stdlib/compiled/12/stdlib/083_YieldFarming.mv diff --git a/vm/stdlib/compiled/12/stdlib/095_YieldFarmingV2.mv b/vm/stdlib/compiled/12/stdlib/084_YieldFarmingV2.mv similarity index 100% rename from vm/stdlib/compiled/12/stdlib/095_YieldFarmingV2.mv rename to vm/stdlib/compiled/12/stdlib/084_YieldFarmingV2.mv diff --git a/vm/stdlib/compiled/12/stdlib/085_SimpleMap.mv b/vm/stdlib/compiled/12/stdlib/085_SimpleMap.mv deleted file mode 100644 index 0effeda9fd8a7551e7aa7b6084c83a3ce1d4c1ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmY*Y&5qPY5bmn3?zX!<_Uy1b%OXS+A;bY`#R<&j!rzh;;t(mBs05R#zShtin40(S zH@MIE36i%owjXHM|4Vz}Gg0=1zUt9GiOoMIVh0M9R^*V+yatKrfEA+viIhbx!jTb? zpcRpV6X9J?37CkMrC!8{f{0vYEO3%rP;kk6g}ZXZy`2f~)5#w1`@p-tyw8XY-e-Q~ zb6@yzkx%l2Vp1Gv7XVWZC!a#Q(QK-~rhwa9(On9>HUtO=8n$%My$@tCRk8uH#fBmn z1T`>p54xVnxMo@pq1NJZK!l^wdDe_}eq*aOC%}pRwpgxCyA(3GS;20=5zbJVa6*zh}rV2%TAiQs}}Wo_E$W&CvB{{IGV?G*EZ*~xLkGT z^v9x}+tXOT=>D{ATsAMGJzK3~+i5m2FRRnDNb{vmcHG_-!tZHAJNo2WL zH_Pba>#nU%IueD18rH9>)ogIukHf_VI+2l(rIXFDD1}(0YRu0@*x8mr1uiCYNBdso zkmh+@t%;&06X^(hZ+2-;uo`H-!9dc^+A~oZUx7X>m$vt_~H$k$? xIlEh&f~Rfi`DB9qwFq=v9I4EeF1RwmVE&V~F=-%f>P5rKwDi&hd75|%>N|W)c2WQU diff --git a/vm/stdlib/compiled/12/stdlib/086_StructuredHash.mv b/vm/stdlib/compiled/12/stdlib/086_StructuredHash.mv deleted file mode 100644 index 41c885886649f58283e437ef9e5ef86c382d9d6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmYk0Jx&8L5QX22y|!bUg-DbsDN=*@Q94KpXcELC+GyFVv{g3Rbqemm1&}xa*Wwb4 zJ4T~7Gw&Y(z?_yg)_B2xeW diff --git a/vm/stdlib/compiled/12/stdlib/087_StarcoinVerifier.mv b/vm/stdlib/compiled/12/stdlib/087_StarcoinVerifier.mv deleted file mode 100644 index 684d44fe5845cdaffafd90109c0a8e06a708ef5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1910 zcmY*aO>Y}T7@qGP&y1a2XPvL6&4+0#4j|GN6mBGKq##mS)d-2xYVB+qQ`>9pZc@sT zWB&yguDu~~&)#8P6IS>wBX@e9@RJ^es~ zKiI!q|E5CqyLwN}pTWoO@8B=h{Ll&!KnWw92qFVQ6y5-@4hZJ~g|z`Y06Bn#B*ej$ zG`(9(HwanrV(5p+K-ad8kkw|3kXS+2S%J%12#6gW5wW|;9gI;#sTrRP1U$49yx_D93X>r#xe^rE>~nwsxMsuxPux}D{P%l|WTxSE22#>AH%k**b=<_dBKQD^>t*-K!6VAc%L(x8S8SN#GM|mGTLb%T6TCOi{ zX8!#6$FR+fd~)8ETs8ckcCG9=+W z?Aghy{_-& z!7N{rxD=M*(!e#eUqkNBA@7TOYBBeQb+^P1*w}F}v98#bag!gAXB|tIaH(9eoPj+M z4~1V@@l|JzOm1gw%5Y_pc+Jq8TDBbbw`ctTa#7+Y60pSb<4$bZ zEfR*tdm_e)Mi#qtXlO{{mV&N3-!MiSzz#`EMa;LygI)1t$rJ>ZV!NfB%&|@ZyJTMg z?u#G(Z?GZ?&}uZKu?_ack4rHNObgPMj8IU#$C{{M>E&cI)UXlsnh8q2}zcEu;N2oy%bAe88D|EnBoajL}*xszz_z=GX+ SLWe_6sqZF^_GJ`*asL6IU=6YW diff --git a/vm/stdlib/compiled/12/stdlib/088_String.mv b/vm/stdlib/compiled/12/stdlib/088_String.mv deleted file mode 100644 index 4b51f4373525345475828b2193f430dc1ee0f914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 927 zcmYjPJ#W-N5S{(>dS~tPUM`3r8iWD`QY5;gOhHY7M0>j2If+H^oopY<75o@}5j_n( zR0vVf@z#MPBYAfA&D+_xp85Rv2U{XyK~6farYpU3=F@fdTYMGni>mB5HS@oe4S&>6 zS$ww=WI>V?QASc`0(%XFjD)jF12?GXQYP1q$miIyM-(^^6$(+QfK7^$s0tIJ7)nw) z3PECOEve$b;f{mD2kw7qFNJj^td|mN3Y7wk>Ox4MW5P?N5GW&52WHf>*b!$H#yb=NMh7OTs8^?qc=TkJpi=nm;Y zTy~4I&8}T9yZznyes{L$M@6pb7xjnju(wxrdof)4d#Rz@k9X)Ksc71d%d2LMbIYOD z{pLfh+f7@eefLc$mpYtGp$GpAzuL>xWRWpVs1y~=<|NTC5{5B6v4|Lkv{g(M;m;wo zDP(Y?l^VeGl?MawadG6^X`rtiz5%ftK($QE) z4!K8R_Q3{o!iFs%SL7@s!MjMDGaX8UIkosOsA#REJgL%2)m%t_yE&~S#-C;{Qzlq% zPb-L&oE_^4w94b8@J8N4Z%4`6Jj#P+t)Bppc!M!d^I+KMXXXXln+LFkMj73dWI+81 ghCCYWn5HxbV*FeM%%Uuk5C#$?!Y3-iXB4iI0i@H z3~Ufv4nTE#GLu+pSJkUmRbAcH-=6<98USJhNiq?|7nDEnQ2oR^^nTGj`M+hR|H&8O zy^76OC8O`^55=E-ncVr30}&`emK-jSEdfZvS}0h65{v_Ap`7Vy&q-hV77l;~K^Qoa z5upVm5jsw6T&5%%Go@yfS>#xG6kBqEhJ=I(CdAdIIa@Snr#<7>;V3MU?9}RFJv?|= zJ=l0yt*+<8tZLfxdc7DX8~icmpY`2P&%0IhpxE4T)2@bPe_OQ|m&0xT#IpXPS@xIJ zx;vY-XP;WPLFK4=(RLq)ndsW9CRP~`$rEO;aVlMoCK$_bPZ!ZDADn^+Fs zH*f@d#6t}H15}2IB_7+!Bapn*4yGd>2sS5K2q8w|jS;1IDI;qcDy556sbQ{|qY`1DU R_8Un8OsM1HKuH&Scq)jIBbUKp-hZbR(u_US_ z72CW1MVFbby6SY*f9Op2{e!Oh5$y#fDr($f#?Zxm;GS~;6F)BgB@Bd+h0&I_#r2&( zG5JATroU>xWA;6H!^}6LV*Db0!uB8b&ngom4e5v=iVVb%i7dpCKsG8N2bEC;xyVD+ za+zR+ZJQxfg9>y>!{-&_EYI}onkTC8EjZ!aw&d}kS)cUJ%c{%94@Ra!R8_@3J3W0Qes`sUmQe%=F$RPoCi&B*7pJI$0DCz6u6GS0-$?(}_oe zth77Ij^!YWIzbjE^ow5HIT88%LY@Xm$o7tdXz(~J?Zt`Q4Z}pHsZ7~^ke)vZQo28k zJIBU;lEg_$z6{c1_j%Acfd&U>MJK&|uxGTR?m#BiLDZLN7W9YoAU=@;X9m|pDd%RE z&qs&7C_R2QRG4S+t1aSDW_%+%0N6QHfc;?-_u}qInsONBhA0gG^^RFY%h}n$e;c@! zuZtig)&t;{WPVo;WE!P@Fs7?_Wmbs>uY+C``a#ki^+B(NFiNu|Ivi!v&)%x*A4!>d zqhT0;zuSusgPxxO;ySeHfOP&CZ(n8sqy%;lz8a+&fC3q7|ISHr{SCm8W}R|3Nc}ho zIz8zpG6+4u>0&V!z$4B=Wma z1m{`sT!vO-lCy*q`uxaT2>0V~1PFp&FFuvw<=KuiI;zaHlSIR;$ef$q5hU`{s6Xm~ zMhpZB1|8}2qJ9KAoOPrOWmr}86lIk=p-@c~Wxy;U-ye+nhcc-_r*PEopZft^WB){+ ztMdk@><_bZGd&J&`8#*+)>Wy>m|S$YQYv@uG|G;{BsletlDO|rpui3+gab*Vj17Zx z1;LVMaM~bLR#nvUyX=RuC%Zr)EERVHWXfbYlu7hj!c7_99`9n`@;fZx^E^ASZk8u& z-K2~=omiyu_hd{Q2;Kw@ zUK6aT7lJh%~P0t$roc>xpUVG4;%n8Ipd4SJ($-nFHz65i5V#I|igot=Vs0rY}H<-xG+ zlI;K#=ri5j5v3LtjFlT?LtzG7+;ufwH9G)`o?C4YgIY{?Ynx-b4s~<73dWTwjHL@* zFF5`eh5}&-!@Wdq(3`9TQgTxvdc?U~T_d|WjykzdcNxod2Ao`2?q%8*CaW|^JI|OS z&uN>PkfFhIj^>^UI3f^vqN0060pPgBxZNZbT4kEMu&G$AxQi{5izZp5D~zi4AdykX zT6dQ?c9+R@M{ilHwncAPwk0fb8?tnF)opOGQ%GO@u9GK#(Qa|Oq#8VS7j4ct&=de% zwCq-iK7o}3uNgw~0|gX%Y)qAgMRS!XrEPZ;;6VG8yxA7V4YEL&nE^2Aw(>!AyFr?C zJNGHR#eavoXAEdtwh4kd8{{s%H|A&l2jZ7pyThETWRE^%7AT{X5>}HurO)yrMdYPY jN|;UZEqyuONrU#+nk1kh695UW7OWfO740*wP6GV{H8i-P diff --git a/vm/stdlib/compiled/12/stdlib/093_U256.mv b/vm/stdlib/compiled/12/stdlib/093_U256.mv deleted file mode 100644 index 5114e77f7fa3bb190418c315f2b2e2fa6f316645..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1125 zcmaJ=%Wl(95S{z*ecEZ9K0;|1ybBUiX_Qn&Vo?x$0&F9fn95ROSB_Iuwx}P%k_{X7 zY}oKGtXY>C$L@m#quk>&Gskl$bFaT_|Mm(1JOjm*6z)uZW;{4&&-D-Xhner9tA2_X z?n0>WTz-|&H^WiR08s-7WFWZ!2#6_(paTR$%qj$@5jV*w(94#5gRmmntSS(L1j zZjE4_V8dZ=eN3=Tt%2W;I!L#WZfI`605iaq0sJw}9Oue$#v~J5*Fj*I5o8V*v%s7M z`F1ecS8vL)DCg>3`o1bkkxVA~eK9*p%2Z6U)0GcpF&iIc$Ky1gWJ&Ip{#ljIdo`VA zRW(hUtgS6Ts-oD?71XqnDhI$s=#B2NWo1%?Is zx+=!Bjr^3Bg*?itc{j^XlW8^?C*|>Cmgbe6XZi6ot%^KqQ}ZgRQarNjhSLIJCQV3~ zUk&4o;{b&r7sn5>+azj_IA;>qEmt4B4I=2U*m?}1-0x~V45gEFp=x^|p9IEBx(2oN zF$-OA@|9i-xnnIAjyrKrKK6{^P4V1|`|^>NTniqEWe|@an}%jfhg%AAqYk_j>P}Pt zp;Up@EMDK~fQco?UV(1oe`FSA)L*#iU~th`Qx3L=q42PG_-q(rPX`dP2)lc&BX;>0 z|8YF)0jC>prH4_hxFNorlgFklcI0p&g%DSStAlHWWMY7L!>~a2sz8Wu#aC{GZtu$N zpu0-$Q<|~DZ?ZNV^<}enr43NVG>`i`wTeDwvYV=Yuzf>?Rck}lXzy^>Q~f4HZ;rP3 P8f`2FZLob}|49D=@Lhsr diff --git a/vm/stdlib/compiled/latest/error_descriptions/error_descriptions.errmap b/vm/stdlib/compiled/latest/error_descriptions/error_descriptions.errmap index 6d0c38142025186b0ce75297e09a3d8e39cefe5d..a3f23c9a7373f15eb1dd7ef279c435b066bee325 100644 GIT binary patch delta 340 zcmZn(obJlRpg)mm*5-7^WTwf+Ea7ZUIr+)ijFa!NC`@h<5!hVJn#j0Whh3Fr^D*uM z=E*nsuW$Y@Sj))BIJs6>X7e8502T$eqWr4VJm>tpw9ItIR0aqTbqxxNclP&l^K_rQ z0jQE&LY#$>d9t!hz~-qkE15U1Q?OuUWS^|hqcwTA(rg=P*MJ~@AAk2y*Lb%e|0q|# zcy}LvCr6+7kO)5pE~uFj7>XR7o&7^68%hY*iy*rqxTGktBsIN~8Ri->kZT-WT;jnR z{6ga096fzpT^Q1!CQE|kgIs<6!(7poq(ha+!HjTr^z-u%iFa}ZdM^m5+{GoxHJCAY Ml1ljIg({Dk0aAxvfB*mh delta 1328 zcmZux&yU+g6t?C>Q<(4#0)K0gyN%u88M&l5SOe8OiT^@B7|2@68kV{1Z+2 z=qv5(vzFo1e^RP%9T?-LJ@8y^QjDRxdflG#v&394F`f$I7oV>-~xxOPLsyVB71r z;2FN#z$kBqQ$@3zN@EEex$vpR+ua2X$+mQ z1EncLSI>u96ie;Nx{E`-&>AJdalN=xBjHu~`<05-ro5-`0ylbK>siEwK>A& zEsGjEya#$4n6f70rKzYJQ-GlX+@+LTrt4ZTeN;=;TmIdVsD%>z66hAg`~wdArsF!w zy!&OmDwlVtXSbE11TRDJ_{#e9uln2d(8*IYOOxFym%y~8+iqujo#-)%;uC)qg~Y=j zM8rW7VnS1swN@4hrrn19HDbo0ctDa#PLd%>{rFHcr|Qz<+Kb?4r(Hi&iyxQYnyZsV z6!nEpn%u*&Q~zJc&5AuZ62UPU`q4;)sEY(id?L~;N@6m^d~)|R7a7SDlFhm*KE3$o z8JvhX_ws0@%}Fm;S8BSP!2om@7REHn2m^2_<*6!3FiBHXeE$fAlTc(LjnLAE=;OO&n50BJ@b8Vw&_tB#@25$8 zi2aSx#4LI!n$OcmCBE;E7ZpNw>xfEw=7@>(?3@3)Tf`VUaPD1;z?uh z#*vg z@!?^V;&9JZyk3EDD}dpK^mM1k_ZY=Rx4`bYz3JJ8sj4f*qov=9zhC{P*jx6C=7r7T zwTrikc(b#;)=$F8NOq2iU1n AK>z>% diff --git a/vm/stdlib/compiled/latest/stdlib/003_FromBCS.mv b/vm/stdlib/compiled/latest/stdlib/003_FromBCS.mv deleted file mode 100644 index 6291eb75bc211b2e9606878e36854754d73208ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmYk0I|{;35Jm6Iyia_w&|VO0D@7y_D+M>;0>qG5DS;#+uE5$QxIQ=GBp7f`aSwNj znfK%qI{*=Zg{Ni~?0oDuX>=dCCxzjQQr!}W09GIhi~_5`DO!sb7LEeb0Az{CkPyS~ ztMa>y>RI(X;bg0^jyRdkH7q z5Bx~N%w+Nl^PlAXWMvcp_y~+K!PSL~Bk$%(f8aRyLN8q63im#_AO<`Dq)8+h?jnI4 zKq8$gxAn*{t^qYUL|ROP2H3wVi`wS5b!!XT%n~ol^R$~K2M>+STAMyL&-1j&Uei9S zIveC=U*^^Ueqq~n(v*v|wnf&Ky$$DG)s`>Sn?t-sckjF$?mC%2hU-dmIjEM`BOF5{ z&I6zTqe~H)bu>-<34~0Z4tWF9M7zCVA(!!nIUE>nI74bw2?GWv>z7bw!yG3=1xoXQ q83C1HVjDxmNC_yjDRZ>L6{WZGM!yTncqjMlkKC*Oa!H>12lxis&o_+# literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/007_SignedInteger64.mv b/vm/stdlib/compiled/latest/stdlib/007_SignedInteger64.mv deleted file mode 100644 index e3b62651c1b9513b4d5267c90b85fc7f8a58080c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmZXQOHRWu5Qb;`iW{e;DuE)X*nlF~SKV;{)*K)T#6&@9Kxq=hak}CN?6?d|F2OiS z5f!#&&x}8N{+aFK+b94SAuz@SR~Pa+^lqN?J5K!%^ny?P!ts_1V!#7HnncpZoh6V1 zNTgfkT#q)!HK3*gkrvaS0S@l+thDKES=-E3tEHEuY22)qM-P=vY8yXR&+E8KUgI_? z8tbQdo2S+Rqs-QQ(BzxAv{_Q;tqs;qQRgqkn?t-!bMH>sy>&AG3|E!rvQsUuCOCyq zocllqhLJcly)_@rAYk&W3mceg=NcAp84bj-Be>xVsY)db7@YNOQ2v0NcE3}UcgO@N n1rs|PLPjb;`9qGA9jz$3Q#RhqCZk`Wi+!P&|Adk<*MIl{YMM33 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/008_Vector.mv b/vm/stdlib/compiled/latest/stdlib/007_Vector.mv similarity index 51% rename from vm/stdlib/compiled/12/11-12/stdlib/008_Vector.mv rename to vm/stdlib/compiled/latest/stdlib/007_Vector.mv index fca0c13f9fa22089f35b632ccb13ea8f3c0c1427..6deae25d480ce720cc5ddcd8965f04d366c475b5 100644 GIT binary patch delta 132 zcmaFCd4@w{q0DP;HU>z@fX|f38fywU}y_f_QC-*Xm iPYz_VVicU*!*q-Vs849~US=jnRv|_v2I0v^SX2P6wHY-4 delta 283 zcmYL@zb*t}6vgkqZ~olxhS}Yj4Wb!Fb}7_ag+{4SZbT>uD1S)kRTA#HOdVp?iR=KH@;)?##uCBwNHL= z_3&tUHoQSEC_+vd#!z&Eg}xXy@ z$;`hUT^{T=kGPH9MrbGKExyyeo}el^T1NRUha*c=WWv)C(2)L&=0LM}ndmO7#P7o+mE= diff --git a/vm/stdlib/compiled/latest/stdlib/009_Errors.mv b/vm/stdlib/compiled/latest/stdlib/008_Errors.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/009_Errors.mv rename to vm/stdlib/compiled/latest/stdlib/008_Errors.mv diff --git a/vm/stdlib/compiled/latest/stdlib/009_ACL.mv b/vm/stdlib/compiled/latest/stdlib/009_ACL.mv new file mode 100644 index 0000000000000000000000000000000000000000..89c46c5234346fa17c1fddb58f7f4fff2d058370 GIT binary patch literal 470 zcmYjOJx|0i47Hs&Nt50eIyMG2Ha5_0fZ#S})~dSZPL=Lj)Rq&7nTbEZiuh&BO#A~} z(4n&w=h=Solb!dYuV4TmAQ&=Q`7?cCcz$l5m+lkC<{PK}g-rTNZ#ei+Bvb_P7C;FC zP2!jofI%&3mS(P}aH0^bE+AR`_Tg)Rs^qhVw+J^_;eDl)7{ zE-MLza;~m#&Ae&qrZsnQ(bbL0i(-_wZEU)1QCD4FR;}9sj+^`L$**FUZGYLOiJN*G z^}1}kaanEiby;M2vwGOXs&i#k#K){&%7FWZ%I!ksWYj++Og#7F+o^{U3^AqCKr=Yj zo<{-D!o;2gsRX=nghIq5NH8JI>?}%^`o$p!7|Zh+kZen4zWi4^0MdO*_lzmA;BdGv RhN;@A_5FU;)QqtIq94q6H2(kq literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/010_ACL.mv b/vm/stdlib/compiled/latest/stdlib/010_ACL.mv deleted file mode 100644 index 773134f2eea099ed527223f864d498f52f79dc00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmYjNu};H447Gh{-{mgQ6qSvEjSUzprXpZtW?`tJCZI@df|5|d#s}~d{0^VMFCa1T z0XRjKYUzCTd%m;Y`#AcJ0ss*~NURCx_Ck1e=9+u|iJ5%iB>bSHzxa-OZ-#UfL9+ue zT7e}^Oa?&E4zRN93<4(J0|gfpa4|(-apHxX2L=+&i0A=@kx4=Vk^mYKHl&wRz@VPX zt6RBg+otX0u3Yp@Yx1HP3?Xv3ntg6@fvMT0z z`}n*n>)uy&QNGNZ2UW5gX#BP{UN!v(p$|Oh|;u&k*08L1CJu0gRz`MWg=b+ zp$=jawHcFT_70V$!6D=bnLeKasW&QgHkiJN10btVa=5zyQ?uPL{IS_!ri6q4f9r!V AbpQYW diff --git a/vm/stdlib/compiled/latest/stdlib/011_Signer.mv b/vm/stdlib/compiled/latest/stdlib/010_Signer.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/011_Signer.mv rename to vm/stdlib/compiled/latest/stdlib/010_Signer.mv diff --git a/vm/stdlib/compiled/latest/stdlib/012_Math.mv b/vm/stdlib/compiled/latest/stdlib/011_Math.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/012_Math.mv rename to vm/stdlib/compiled/latest/stdlib/011_Math.mv diff --git a/vm/stdlib/compiled/latest/stdlib/012_BCS.mv b/vm/stdlib/compiled/latest/stdlib/012_BCS.mv new file mode 100644 index 0000000000000000000000000000000000000000..6d70b3d7a84b1119fae93a5fdae95ec26cf0f92e GIT binary patch literal 98 zcmZ1|^O~EDfq{XIk%5VsiJO&|lU+=LLr;Lmjsqyl2!sqwObm=Hj9g5Ntc+}&49rf> i!CWQz@rfxZMXANb96)ALWl3r=P&G0D>I7;7Vg>**T?=mj literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/015_Event.mv b/vm/stdlib/compiled/latest/stdlib/013_Event.mv similarity index 92% rename from vm/stdlib/compiled/latest/stdlib/015_Event.mv rename to vm/stdlib/compiled/latest/stdlib/013_Event.mv index a4b3a1b812a0c7d157ee28c1881bc0b6d464e54f..471738d28856e50121299408734233b044eba0b3 100644 GIT binary patch delta 12 Tcmdnax}9}GDI?3qGDju=9H9g4 delta 12 Tcmdnax}9}GDI>$iGDju=9E}6% diff --git a/vm/stdlib/compiled/latest/stdlib/014_BCS.mv b/vm/stdlib/compiled/latest/stdlib/014_BCS.mv deleted file mode 100644 index d66fd2976727d10389ab808b938c050b7740b0c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3074 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 YAei6+pE;Uh9s$mD;v$TxY3 zPyqD^0plRxT8Sz}MA4sGXR__qnWiy~%AK>WQM%skjT>iL7t?vRoEM9#EQ)27&1Pk; z_24mI-MX5S{6n{m{%xmSkBT}V|!z1*Q{1? z3`g!)BU<UYqvcmW-!6O9m(RI!E zV`T88y@u|O$r#Ru-Q{jK48yB3TnrmwC2WQp-HqidA-Dl9s4zxEBB8Hqzt%qHp8Z(h z*37lQIZ{d?xLwA_PRX%_!nG!eE}%$fi!r!_sn@~n2kzQP=s+5br%LX7XtyfHnMs)A zX&*lda2?Lz;OPpED~t6|Ps`H^4eg}*C+TaGJWmJaS(=rfo72V@X=dW$oTWyd zb8Bg6*H&!KCwXGVjC9P$NfN!l=+WLRo3#ya)j6A_IW0T!BrOlmdA!6N=fkw@BxYC^ z`RT=IGkf0(jY`xW9huXa{X(W-8s{5Rs8`|)0x7tZh)x4dfWig0%dGaRb%Xb-o}EAa%O zD(6+)9~qxCCq;ZBsarZ34F;#!2GdX6c#w~>(kb&Y?)xT7Y~x+ZZ4xysB;iVkhYT0gb1U+)={m;~?d z^FJ>9{mEGP^D}lhWAzz(Ib+Qk8_d|jjP++Mow1`CGZO}UodLhiIl#N}rtbm39r>OR zAn(Y#@_lhnNOC(9w+sB1^gw*zY%17N;DhYRb-9iAgzwxZ~H zF~`{ebI}9j;}yjks}IrNV<7N#@t2l*Ja7ULNF^Tt-e!D91TJP`E#-C;Y_bInn|M`f zsfBi$UX%9#FEhq;VCRBjThP+b)@&0Nz?mf7!Iul4ExhS8+mYZ+%~&=HW?Z3J+?}*! z_UTI3sd%Dsbp!Bz=l*Jl>SO?cPy*HALqfXfaU)%PQz(Y2Kugr+^f1-705!>aAFvo| zM^E;gE-of99&cRRsGd=L(HVED)DUb9%u!3Y)AJru1E7vglhdZ*d)M=!VP^>B6=-5h z>Ev+eDQHooDmFu+z%7TsZE3dUwO|2V*KRBB1#8lAuyXEI8rL^mHK|+kdyTaKdLEXE z+oMHScAO=erW@-UidDAxE~gLMWs1GgG>u!()0*{yZP*29qe6QK8mk{N=n$tPfg=u= ztom_%ehV(6Fy-0mtGM+{11wS*vWNd3AS5b!s_DU!m{hrJ-B=d1;0p1M-G0T_rRUJI z?6JlTl#G7GJN8Iuj+?S#W4$3AJwEe=%X|<_aDfjX9cLZ_9%dOjc&I%*+SsT60YCMV A5C8xG diff --git a/vm/stdlib/compiled/latest/stdlib/017_CoreAddresses.mv b/vm/stdlib/compiled/latest/stdlib/017_CoreAddresses.mv deleted file mode 100644 index 8977cc4410a0e4bae6aba3fe5ac7f8d596fe3961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmZXQPfElv6vp3sY0}zOY!QZ8h#&}VTzLY^Gz?uhg=S{9VPN9W%@h;8g9|U=Ej)sE z@e(G?6h_SA%X_~s{K?DI% zObD1T=3j6WIkNNFU`@5%TH~B?LRvdmCse=N8#}F(YG+NgY}$qH+IFd{y6&V>7jwCg zs!?Npxqi}~%Wf^}kxe%KL;I?CW^Y{Y^yW|_J>GhFF06TZ>wV$T^L?KlWJz|+d2wo_ ot9<&Gco+YXu!S%(5*`8~KYbvKSP0S#%BaMfNbs{5N`6Q13n2|Rp#T5? diff --git a/vm/stdlib/compiled/latest/stdlib/013_Option.mv b/vm/stdlib/compiled/latest/stdlib/017_Option.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/013_Option.mv rename to vm/stdlib/compiled/latest/stdlib/017_Option.mv diff --git a/vm/stdlib/compiled/latest/stdlib/019_Config.mv b/vm/stdlib/compiled/latest/stdlib/018_Config.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/019_Config.mv rename to vm/stdlib/compiled/latest/stdlib/018_Config.mv diff --git a/vm/stdlib/compiled/latest/stdlib/020_ChainId.mv b/vm/stdlib/compiled/latest/stdlib/019_ChainId.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/020_ChainId.mv rename to vm/stdlib/compiled/latest/stdlib/019_ChainId.mv diff --git a/vm/stdlib/compiled/12/11-12/stdlib/021_VMConfig.mv b/vm/stdlib/compiled/latest/stdlib/020_VMConfig.mv similarity index 87% rename from vm/stdlib/compiled/12/11-12/stdlib/021_VMConfig.mv rename to vm/stdlib/compiled/latest/stdlib/020_VMConfig.mv index d4a4038b71b1b7f39be486752cba792c6aef31b6..ecd23444b44fcce501f634fdcd6eb5b6fb093665 100644 GIT binary patch delta 24 gcmew_w_av~22+dJMy@4a`EQ}0H49wy_lW%ayFnUk^%HgKu&BY2*=gQ5%&8W!Y$m+t*EGVbW>dnmx O(&Y`*wK<-XhZz8=01^5C delta 143 zcmaDZ@mgYn0n0@W-dP(>^f?4@0#3j7%(y3``8n;=WvrKrO6XtRO7{+zi}|iYz>={Ortva_X!;lRtB~srUdT bfd;rjBpq2@ppx9IAme<%#%+$~s{= diff --git a/vm/stdlib/compiled/latest/stdlib/036_Account.mv b/vm/stdlib/compiled/latest/stdlib/036_Account.mv new file mode 100644 index 0000000000000000000000000000000000000000..aa65760485e50b04f3631977cbe6d35d5f1135ea GIT binary patch literal 5235 zcma)ANpl;=74B^o^b7_V5a1$8<{~abNz`geBWvF*+4641&f*vu5ls>n78(F$DOJfa zKOm>1QaR+9WBx^|@(Yr`kb6$4INzHE1TCqOsluDrZ|~Rd^>pJ;$N%ZsjIlCj$HcMw z^6S4z^=I{k^}YIsaQ^Q6vEu$~x@!Ms=C?xsZm#A1drtWOnfpUf{(UqX{3R05ik{%OO_Yr~QNAm0A$C=YaB30=ZoHIK)ZF8nq z&cKxWv?`e1UIwaLoK!yIn_MY#j&ob?K+)d47;z@|fU0&C+TTQPbEckEx43P0uE3t` zf+u?5$v!ZD{~F9&-%8260U4Gey71`yqqED=<>*TEUhrP+T=e0kOVP)X zh(3#^BknV9aVFgfDCwh6Y}Xc+r$H7@%FS@wPv0_QLD{vqYjfL|mZFgh zMI-`L+Y+{~g|uN!*{(}`MFTAa=mIiOkPt#zd`seS=nWMqQwm{VE1tT9Q8y1oLD^N3 zKYgsaVM4If@klPDO}5f92tO|<8om+F8T*p zmI&lVBP)_vPHG&?G)0h1-_D)w?fyY;RK9aC+B3aTdpjBR2jzSHfw|La4a{(8hW3NO zpg$N|51vCnJxYdq_Q(69cE2Y-e{#?MyuI5qgVK|B*9=EVci(!_e`b2YlR?rOCfg+T zt}*r(W*c^^@MiW$sYGh60=NAMqH{OtB)x6p-#7dHVSAJcH6ELnpY=xx*}9kPCr{g* z_UL6bb9_jsWQ6;sV|J5~Y1O`LkM>%Fr zpI@BLrFKov4BNxPcR42y(`6}yvQZYucCx?JDw0I=Y!33|Ho?lXd*V=nqNg-YaGh4R zJhl9d6gKlDRVGM7)7fbh<1`6fGfG;?C|PKsSO)!ZbAHTp+oNLE z&BBYJ8l6AF8pogVO6Em-I6}Hc3+BaWfC_z64D$tlY~V0Gl`P??<*a(DO1A^SzK_}%2$xT@U!yHx9omgLSy9Z6$%IT;TYVFwneY#bMSA1?3A8|tkx_Mi61&`bBnM{wRT!I9P)PE97WnTgw`mpttlD-FcX zHZivduaa+yMaC4ZjFV(%QZpPN=O#<6zt!2xJ#agy*F{Qr?*(rxFe(%lHalCfIS;y-;6Pn zW2*Xn{^SIPlN4iuf8=^N+{|e42@XQ8`zb-|Gn|jy(i4K}M+Dg|DFpulhdBOab`TQs z#|pYX(ZUk^r;{Xu&n_4ppy|idvW($0;+sx{d=k zoCY2Xwa)|Y@NglPi^>altnkB05yx;Cr=UFU$=DKZPQgrLTZ>nsSy4J5SrI#;MC()v zuT9!VtQyxnkAi^Js;q}v_!Bc%u`6(u9B0CcO9J0gGW*b{V#K%Ang zS$NYITEzaM(jKyE`5r?wkSdEXlTr=M;sEm#zSQzHGpK2Ho$OXHYl)dutvW`bpqm#Z zdCKBqs=#e7>J;u~0IRjD>=uiskY~hkidSrp*H~N^xN%`ZSPRe`*qZW0O~nl{JwZpY zrSwufEoR8N^w2*<@*Fq3x9)M6Q}K+L`+-b3lbI@Htaw)7#)zWu zkRZB@WK0AoI2aS* zs=zIn^SFVGk_E7iX3evzp2)IB^R2Lk*htO8)oC7{5~q+OD!Qsy7pK7yS5dy%JkZ{# z3uv7}B|}?QL<6OY#HFb`Lz5>>Sr?nMp9%Ci)_hS>o2aymYT^6qMSG&(&*HBbj$3e+ z{M(m`6+#;*&x%*Xxm4ht`_Or;QGPzE_B!)R#P;l&*)3n|(%G16y{4wE6JCjXxG_56 z2kRdG^2p6iYq#Pxw0kx@uFeE9US0GZ>ukw)JV#yjWcZPX??l6jp{ifq?^e_uujJ`? zEnc_o!GSoR#&rGHSxn&!DzW6~@RN0P3syR?LZ?d0OyN4(A+M|CCHz$LCADC!cn)`b zl&y7<$l5{eFR4w8a=KPq+S;0R>Z|ISb(^Rjq-n~tzOC(X9j~a}SgOa?CnTasgvXI* zZ>^~>t*;6-Ew-HcN%hp)B}y5Y(E={L`kLxlL!wnkQ+PyMQopo*QsQvHt>_le!oH literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/037_Account.mv b/vm/stdlib/compiled/latest/stdlib/037_Account.mv deleted file mode 100644 index 1a3465588cf2f4a091e256a0ecd694ebae2ea0ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6890 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 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/038_AccountScripts.mv b/vm/stdlib/compiled/latest/stdlib/038_AccountScripts.mv deleted file mode 100644 index 3ea86f9cdeb8c0b62ca60599756ff1034af78358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmZvXK?=e^3`LWf(YCaR;zp?;;?5Je^$Z?h7{@G%I#b%Ipy%)cUc@7K5ien?E(8rE zyzoQ#|2lc3T>yv>lvKHziq0&F78i_f*w5}bXAMDcgKUQaM1>uJfZZ0A#0*4+m_To3 zt#4dd+o~u-9evjEwy4c!PueuWYhx{yK?lDhHzN067*=%fN784iyxy3-ahCF$!tV=B iE>x%SpZmAM?!Sv&a{!e>GLVAZzc^+VEz1;^9Q6s>6+m_X diff --git a/vm/stdlib/compiled/latest/stdlib/038_Block.mv b/vm/stdlib/compiled/latest/stdlib/038_Block.mv new file mode 100644 index 0000000000000000000000000000000000000000..fda9674f7260a64da141b7a3a8eb539b3289226b GIT binary patch literal 766 zcmY*Xy^hmB5T4mT+q-sb=aP^D3MwRiM0=D67Xbw)L7=wwl2u|6JJH&?lc?!<3SNSq zH=y7V=#Y2@#?GAxQ+Pcy-}lYz&V0T5+b94q2%6~upFR_Bh5Ya|_>4bT_>*Vq7uWg^ zzZZWI-!Sl=>inr=+r z)hk;sH!f;#Z;-y6UCidM=f&Ci`McSCKCpCM-xe!ZyQXX=|GR}fJV-Cz%NFZiFe~dT zYIj*!zuH$+PP?jXiylI=IX2{Be(N(C^F*_OOnFAHPvc-B<^wt8DW|#8$Ym}cK?Wm+ zM=p*SJ962Gae_jUD-C&|q1(CM4CeBm1E(;AC%{CM}FvE=);wiFjLrJ|`;J^2~k_G?( literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/039_Arith.mv b/vm/stdlib/compiled/latest/stdlib/039_Arith.mv deleted file mode 100644 index 61d6433fab0c527c68fecb535bdabf4cfeae51a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmZutNlwE+5bU0w&F(oQ64*i{5*LIx0Eq+~5El--Bg!VQlm$7<6Zi+8;8Q$-19U@3 z5TYbcS51vw<#}nnu?K*FV96f1c01hM#&yF#V<)}hJBo*3W_vzoKFYUY}{L2U(#YQ$QDnNYN@JG&DQ-%HR|>2ht+gE zTT1G0AjNZSBA|G-WvW%!hBC#*`XY3in?3)tb8Nk1HW;vJPZ*k%C|O3CE_o()g`6%# z#uV7HFF2^m*z9x0v57|h7i?tc9$hf{4}m7O4vpT6yZSc_{)UAVgJF`dm-0d>33+nc klI+TqiEj&zC1+}L@;lp?T8BB8I;3?%E_FH#yE+Cw0k?20UjP6A diff --git a/vm/stdlib/compiled/latest/stdlib/042_TreasuryWithdrawDaoProposal.mv b/vm/stdlib/compiled/latest/stdlib/039_TreasuryWithdrawDaoProposal.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/042_TreasuryWithdrawDaoProposal.mv rename to vm/stdlib/compiled/latest/stdlib/039_TreasuryWithdrawDaoProposal.mv diff --git a/vm/stdlib/compiled/latest/stdlib/043_BlockReward.mv b/vm/stdlib/compiled/latest/stdlib/040_BlockReward.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/043_BlockReward.mv rename to vm/stdlib/compiled/latest/stdlib/040_BlockReward.mv diff --git a/vm/stdlib/compiled/latest/stdlib/040_Ring.mv b/vm/stdlib/compiled/latest/stdlib/040_Ring.mv deleted file mode 100644 index 870e433ee9fc90ba055fbebda1186a8e2267f49c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1292 zcmZ`($!-%t5UsARo~66pwiCx85LUAtAQBv$VO3bKNc?~`B$F^A8C&**gabdog%cNU zNPGc8`~WBJ`~^Qj^^D^K_vTKtn))ft3qy==~}6NqiCE5Bx2n z57Y`ilh$9!nQw&lJAG7*pK;)R#r~K81Rw!`7_tNjf)$};sYtO5RKPL}d^n0?mN99T z+E@X?DFxVU@)lcy-PpE{<$`Upl%m6O(fMeniY|4%zuWaWE_T`(XI;ZN6|1Iexwdl- z0|O!kDFP!{V>mU#%4DyP3Mp!>Iiq$3?Bx_G#PmpQA0tUV$FMbyL|x%YHPx~*J)C4} zK2_Oua{E{*mluW2hS(`H^wvatsrR7oy7EVFTu z?$%~2FW#oR`PLvE@9ghoMM=f5$UMwsxR==}{z=1UkPrK`%Gl1Ca&nN4xbyQ%$S6Cq zQJT6$RyHI!o)~C6(2#&74eQX+>QS`28}_I)R`@4WEsGj8^r)@khDgLyYj9SUE`L6m0yhInQzIZBXL8_G~3pE`ApHT^?sjd(u0 ztWoHn^Wyb6_^OSv2EL>;cTQ-0Y!ju$MLNs#Zje76I$a}|lYsko;+qs#jB}E(ayKJ? zoYS$x2=(t|X-z}l4+M66J+)j*B5E6cTS=SSB`Ip*+ykL(I#;1cg) TE@Yq&ONP+@zIY^^aOmJK&@O@( diff --git a/vm/stdlib/compiled/latest/stdlib/041_Block.mv b/vm/stdlib/compiled/latest/stdlib/041_Block.mv deleted file mode 100644 index d07b44aeb4a27b3a651892709fe7e3dec64ed94c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2561 zcmZWrOLH4V5T2gb?#_&~T3M3g#IfU8&O0IG;VdD9IEjm-C=x18aiZ8-OG~^JTT<<= zVnR^`cP>U#yNaZcJ@j<<^nBgZ(=*$zmjBk05Tb#!XzL`~ z{0sOmv@3q6ufh41{~_Jisv-YXk@{1I=4bQDsr|Ol!397lVT2PwByosKJfd8LaR@Pn zkeVcXje`U!9U#PUI8su_Rm7)^kcO25K++UQ79^4u;NmtQN(Veb78UA_02(i0aO9|m zTO(%TrU^Rc@Q#Jz(` zz9lz6^1G)2r0+HSz;F5se#>wB9Y63o-sbE|McBBCs9Xf-g99`P9< zJQ~^0DGe=E=-+z9DV#)>0Y;_pL_IR`#K0P&Kc`e#76o)*gR-H3%Ruwe!nKPm>k)Bx zf7pA@?%vy}-5X}fR==Mmd7k8QJIjVyF1BAJgMvSZ^F8@^RHVZJf07QKc~8@WBroEF zk^Ca*6~nAn!hDt#aX&6%b#E`}Js%CzL7``CUVD@rmUbnmzZ>UC)SFs%N_jsn5I92Y zB8jr$u&C7I5#lCuYBgKfn6VKCo4uS<OT<{%o3 z4|bExw-ckdG~L5(D+`du`{}ny@NRIUY}mtmMHRxqWdFfC;V!NQ$6QURsqWK zptqmojX`oaK~L;as!xI*N8*;t9JYJKntJBWRLU`HfIE6ooMU+{U_TyJDnIyJ1e4R$soybR}(j_UY6ME zI!ueb=*?E@Z`+pVP@X`vSLR+N2Wb(N8hkhBKVa@Z6PdYU%H5iB!IW!FxrHg$oN$VE z+B;9Tp4@x<@X^hicWsG2NaB8y5h|A1aYa|eDm#JK81FS@C)v89-SVlxH*2H3_ovut zd@T4fTM=j2Dn8Tr>fcbLL0S%U6l`$q8YY5LWB)Maw`Q1Tyd{=2J|#S;pT=ou+1J1P zI*RzvR)7O(Yy4Gc&@?1X2*L0=4=KN(cJWVm~BR_%T1V@ZthiNFmlJV-Gz2K-(II7^7(Z(RBgJq-3 z@%Ut1`ro($rcv`Xgi8B}YLj7;;+FeW?kuWxeyhp>6}Rz(a6`ta6jC|UNV@z-5D)Pf zsFJg_p*A&DyM$@^(hg2T)CHcX_{uAfHLaAqrOcY);<<+z;QR-`eCb+fd}ivZekpYM zce<_{VGYFhB~z!m2HKhVv00syq_}U(#b%D#wu2rs!MrsDt|3A9oUIlT5Xyn05zv59 z+gzM9iUb=D4Sg&DY;>lZoH9*%5r2Px-3f@Gd!968i(=a{74dAbpO}hni`r%cY5|sS zu%WO6ntU39?o1$Iqe(6jij53V;D}5Ez#tLn)CG)m17jvwXF|z_Gj|ErcpVE?g2U_u z!CBvF;~!f3vaPZ5e7CJQ4qjVJUumJKW|}uy7*K4F&=c+fb3p=1Yrs)v7?z><0d^gD OX>2Eh0b^H${o8+}AC!Io diff --git a/vm/stdlib/compiled/latest/stdlib/044_Collection.mv b/vm/stdlib/compiled/latest/stdlib/041_Collection.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/044_Collection.mv rename to vm/stdlib/compiled/latest/stdlib/041_Collection.mv diff --git a/vm/stdlib/compiled/latest/stdlib/045_Collection2.mv b/vm/stdlib/compiled/latest/stdlib/042_Collection2.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/045_Collection2.mv rename to vm/stdlib/compiled/latest/stdlib/042_Collection2.mv diff --git a/vm/stdlib/compiled/latest/stdlib/043_Compare.mv b/vm/stdlib/compiled/latest/stdlib/043_Compare.mv new file mode 100644 index 0000000000000000000000000000000000000000..4c8e6794b2595ccbcf03e942248ddd1306d364da GIT binary patch literal 526 zcma)(-AY3-49Al+X}7e_O%F#A5p>>9VT$5~s1GvSVVA?<(F?(s@%g;-2~6wQ=7nHd z@NI`dcGLS8*$LVL%FdBFcGl@NZzOV#hy-)A5f&^7 z4^Q*O`KWFFDS^whX?0j;3GE9yy=lzgsR~#32vAfg! z8YcbUi|Of#nIE%$I`3zb`OoR^Z2f6J47D++qB$k}D z-qR?o2tV~1!#HJBq$7>dBG%f-QF*CjaS{(;l#_sPF(OH%r7d=u!k#9Tjy^JGA3iZ; zuRfDf4idK9JNlvk>Ocbqd9Y0(cJXWF<;vR#OJlt0k=Q+^9BhXUlagHHBY$W@N_G^sn7-)%Ys1NJv6gqloLouw{ ZP^?0Jqt& z0mLL$Cj_IUSz^zWl4m6HY)l)8+4&8$el@usm*t{r8l6;k%h@8EHaEAA%c}AB^>X%& zrmi0Bs;SfYysFDIdELll-QSwYreWznVgd><{oodu6WUP+V~yg)VJJIi?Yb+A_8*Nm z4g=}gBDWoQbFSS>wISHZ_M}zzr5_N<9i4G+9jl zkSFD{TR!S&HY+FNGb*oQE?xzNznBM$|R3 zv4@r%xFXjE827a~(2!1A_3lM>A!sCbUHhC$J3vHtwRVsVV{hWY+RCu;E#J z!`V+M&wfb)1OfpP6rcel1E86KVGNctkVpmK#?5O5GzWu*&a6TsQwKm92sC2hJ<$0` zH5p3C6DqWb77$4X%VTsvOvZyZ#hhc2zwg?I*j%>FuCA_!t{h@@AEr>ey}Z)Lynfep zZP)ATx@uy#tm07Y4(&y`*|fLKQ0(h|$R>Pq(4CTM->%EOtDAbL%YFS2)1GBs^pD_J zc9PFdQ%-QWYtH{McRtQt-xuX}+r_?L+}y6&&ZnY@Uy7p-cS;rQZh0g{ykp0cu36oD zW?S2$ANVQ+Tj2+tE)+KYjfn!z_-6UJ$au&w;2cxP37IJ2VFg4llbDkjliEY#aRDnN u$#JrDkl8?vRwRuIe*6rXd+lijfraKG#r#k&Nc~5>NA7@}^~LzZ#`Omiz=Ci9 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/052_FrozenConfigStrategy.mv b/vm/stdlib/compiled/latest/stdlib/052_FrozenConfigStrategy.mv new file mode 100644 index 0000000000000000000000000000000000000000..598f68b0c2b371e3dbf34887b56198dd25ced6b4 GIT binary patch literal 2298 zcmZXWe^eCL702J3nKv`LJ3IRZ7FYxY3W6eNK?SRv7zB(zqO2fjW5Z@;7hHs0-Caeb zYMNM14N)Vdh{fWMBUa;yL=v&0HpGV0VgylZgM?H$YWz`R;lxHHMf&D}EjiskK6~GN z-*@NUJNN9{L&5*h@c;k~1TrIwtp8T75;CX?&JZra)2ukmVSYF26r}soJ&x!gU;qm^ zfB+An0C-*iKp!|;1uFRJ{k?+eOV4bqZR?^ zr-Oj^m&k4a3BZ|1C|)K@7)U}f;~)ZT5R0I|2b05aysE|q2>fJ5B5PiP2#NqgC@~Ub zL_lno;YENLK?N^~fKde^BsMh8ce^&*ohdG7o+Cfg>$ZCB`6X;}%Bw=k8mq&((8iB! z=~G;8d$P^uwtGBw51;0CyWAdW>|veNX0upxb6p#pUOy{QxxJQL8rDK~)N}F=mwKDa z;&3{=4r`%fvt7=kiC7999^~4XTWB?M8hu;dt4gN`OccSAhYQVTy)B^kf5AIOUK(KRdP|JTYJwGdWb@mB4!CC9`kp!WLo z2R9H7o1lHTcc`PwT^~A2W zIq+rkvH*mwOJ1`7Qi~FDI1{@tv*~X zwKhyyGJfXTV&eH{ztR^?!2ikxy;mxguHVy>mYi;WN9R!LRW zx{HU8_`f@A&i%gfIB^@oWqaQ@*A*9O8zPP0*WSw8fUuN$MOm}2reco&4XNzci?b2l z+-H9>7&<&PsAciPQ|q^XgK+onX2qnwWgT98EaBg;H#OxV+}AnXsJYf9p1u~7TpYWF z%!c2ew)t_E)SZz-k+EertozB+4Zcy6DtRYYXaLZ&t4XM@T=Ju5cav5Grpm2iQjp1#n$YsdeYUiAC%ABdb+kn{BoBe zaM^3O5ni;u+C2N)KigUT(v-5fw%?OC7~Py>%RhNGs?Bx8)6_kHu(l^`g>LTOTGxfN zr}PyhMIroC(}$Zvvs)Xh(|&t>gZ=6%gjq+(PH^To%);GsUKu?0h)mtqs@k&$w(J+L ztp76fyeIqfii?LlroI+N0i}|5tI`tBPpXOCs9tO zjHaAI8ABOMIhAr6<&P=jDB~%oQ_i5AsmSPv+O!0^OjKkYU=Zo4-bk9P<&cI^m|1|s zFWw$$yPjOuJ{k$?$X!g72ovA`loC;r{{cuIQ3zxjAWNo!Wkhu_g4Mxz5lkHg&Oj$2 a;QuFq3<(Mn7ptFuUM~X1?hM&N9 zQlxA(GdsJQ-LLtdQvhHQ6e%g}wY-shd!?7p<{M}B2i^1+@6JAHa3K(Y1`q{-90&`E z64a=(LO>&^xHL}?SSyXn05V!aH32Mhg%&`9Em<E_oGSLw8X(P3*hu z>$cs8l-w@1{Wkcn-UXL7AHm19f3LSL<$d4eQP;VwDZ0tgzZ`N%CF*IFKtiyzq$~}| lSvr_OMR>$mQArJ?94ugp=Xh^O9Gg^;9I#m6<#6Ztg@1jSDjEO) diff --git a/vm/stdlib/compiled/latest/stdlib/053_GenesisSignerCapability.mv b/vm/stdlib/compiled/latest/stdlib/053_GenesisSignerCapability.mv index 0b2013c1451644f88088db741227043e300b7469..c7e787b2b265ab815a9eb27849492a6cb811162c 100644 GIT binary patch delta 94 zcmWN?yAgsw6hP7YKCJ8V&FF*%%PphmbL#4r`E;oUiTnYM(!en>OL2 uDIFS$Q@e6Bt!Ilk8G#!fk-NhcBn2%nq;x^645W6$ns?u>LlViCNgjXL?hLj7 delta 105 zcmV~$y$!-J5P;F|?rg_6|5Y|&0fdm)!ZV~m)GPo=7D-P{ML|Wy9MpO5Wgoi_=fA|K zcHylleKk}+-Pe<8yI8^#D2VuoBnLYLN(HSkq;Z0_9;9=I^^ZIh$2?w7d0a20NHyQ& GppFfa)(@xv diff --git a/vm/stdlib/compiled/latest/stdlib/055_PriceOracle.mv b/vm/stdlib/compiled/latest/stdlib/055_PriceOracle.mv index b8584e7754d63d0f975320ee01be7b17fc125d7a..e70a19c6aa9ea7d41682a63b8def70046b69bead 100644 GIT binary patch delta 385 zcmYL_F-`N%Ljxw28--r!vcYjSX;*FWGqE-WP3Ck_AEIBpjmJR4!{xE za04zuwVfzoEUT*Cd-ds-%U_@WH4*?cf+U#*t1l?NK=Ch;>E9x>f5Z=* zeU`+z2n0a{q#|USS&R?_AcK&Atqi=4M94N4p4URMHBrpgDzDD8x5=2Fj`_J^hUUyg z5rr8~V9!lFjK#=mG55$s3wF3z@zdlV z?W%h3#G7ikkyD&r@vjftw%EC$?CWaZ9Cqcls)x4AnnN>`n`)@azP;^gw|Y#J?l5%s z&zk-^tMpk7H~Qo@qI1v~#eKXvrC-trwZpykkCjZ|m^%tFn@JY9AaBS~*jjkX5l34H#0a&>P z3khVfAY=@}fWb8qp0`^<&3%f9~x1zjl6S-G4lv;t?2d5FkN;0~$KybbEy3pg_DMKx+paM<5_R z7XUupfG#o=&_hmZA2~qKI6}H1Ad(cZWtV}n_IBeP+Lhg>+u{H<;30GXAGoyph$zd4 zoS~y1VW0SXOo)0f2tn@#wA-g0e;h?1Z5BsodZ_&v$HYKj?=3sJqkM?e6*e-FyC_kBZ6>D4FtwRK9eX%dEkq=2C<2W3xr2 zIe8I@vd3tpR7#^3_N(aUGUQC7&wWqQu~w)RQ(6gZY$lsOXOdLcr%B};&t}Ccue&Ej zX^zvhG*x9PH7U!YtVX9MH&s?mvw3dHlVq8Eoh`EZ+WV@^X6C$1W(%X%hw`HM#^n0q zdTGw`%c4urUz!%sTFv<+ughyay*O#C;jA=CZQ^-S#h1p!$vS=C+C>8%Q$RYJn>tRD zI*F@dRnBhWwyghyyOH%(vt*Iw^Y}8E)kPU)c~-Z0YXsN2G79?MM5UQ$Rc*=!skTM* zZ(M5<-PMw^n+-(pF00?BW%8~~-O#;7pU;wI@S$S;WG!=Bqjy!LtA&a4xQ&2O}VYFYPvMqh?<&(nOoYM%&pk#sMuB!6VvUA z1WQ(RVdKoQjvEPt)!nJ7nQ?L1Kb^dqOwXqA@ynO5C(~(=<=>KaX`Gbv)s@L>a*)Ee zn7f-!+RN#Gk=0tv=*>pO_Yc*c`L3p>*A2BsV4}Bq;C60AZ+UMH_UL(~9-IHYbUdA& zpPU_EoSnalU!R{}v;{b+Sr%1R)5N*`L9V0LW^5#PG)E?O<(|v-U3OP8hWBWY060Sr zLND}v*^^<{zLz}=d%oxi9riuuVFW(!Nsk`^Lp!UGk710A(S*a^i!t+g7(KJsc(~=V z00xI*K>Gphad7B^9Ma_TXgHB`o1BcCC?9lu^iVvKPwBmPARIpSSilF2Qwl&ykPwIg zqv;69#+=!yhr**NJQhqfJUT8}#E^R;bf^emj^(t~7NpwK2&p&~-g$x|vj5MCxbox? z(qsV|!wsq=30RMf73;iDH-wzKwKJJh>6iVZYG)4Fq Di*-ux diff --git a/vm/stdlib/compiled/latest/stdlib/063_STCUSDOracle.mv b/vm/stdlib/compiled/latest/stdlib/056_STCUSDOracle.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/063_STCUSDOracle.mv rename to vm/stdlib/compiled/latest/stdlib/056_STCUSDOracle.mv diff --git a/vm/stdlib/compiled/latest/stdlib/064_Offer.mv b/vm/stdlib/compiled/latest/stdlib/057_Offer.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/064_Offer.mv rename to vm/stdlib/compiled/latest/stdlib/057_Offer.mv diff --git a/vm/stdlib/compiled/latest/stdlib/058_EasyGasScript.mv b/vm/stdlib/compiled/latest/stdlib/058_EasyGasScript.mv deleted file mode 100644 index 16d8f1836f89c4825f53cfd9e12fe71cc0890084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmZ8dK~BRk5L~Y}cG|e4fP^^k3Qk-(pq>%jEvwlUOQ?x#m#WX<5j=q#Kj9O^X=o9a zJUcTh%}Vor^Ia(b&;pcH_q3Q6kJs9NiSh&I<`WnFP5^=gAqZ%|0y9?w*BM1AB;cgT zbgD8|I-?o*ETbY#B~55bXb8}tD8vM$DF~IxA7>9P?iVgTEraip9##Du+$OF#9PFqY z?%L?n+;4ocjZ4nPb{m#l244G^IH+yc+kCb2>7@y7XV)&;6|?0{3j517r=#PVCUA^( z#~f^G?J(bNFNW+kxaBL4>Gf~AJ=n9ukx|Y6-|9>I`vmlTNqt@ztf0b5+`&+xpfl)& RK zOftnh=CiKa%d$kv z6E1ko z6$1A!Er9Q{)x{;W_JE@|pFQLyBpz{$)n{uwi$v`bC!)Sc!8URR;reB_|2Rhl*~n!O zey4l|;ghQgT-1yy}Bnb9XOPAKZVmT)SVpb-A)oy;m((7AwouyA|-PVLW7v5Qzw_ z23PJG4?-5A@etiQo4BH3?Ue}LCImr{vaYC3&4#+wU5ZSKs_BYL0O=2C&--_G3dZB zGj73-@**uyxWq>)ZcDuS;7 ziTg=^CpqZEy=TqC=5F#XNl&~1!+R6&rQKfk^P^tpbTcHtuEUkJ?9R^gc=7lB^{28RuifnrX%TwAVfP(DRu8f%mzQ z{J98p+&)ZCqBa&Q|6!$z@waKOxtB(L*8++qa}cM|ZnGad4MWskFK%KZJi?P!;1;Z; zlT5L!PEseGBu$#{l3&Lr=|{czAnB)ZFHe3W3~sNN9HvRPqa7n@HxJ_6DH>59Lq~U- z?O0NFzDx0VHRIM%Ve)6F=y)~g#P3}Mr4cfyt8+2?5uWo^ppDLc8o2}#Os9N~gT|-M zh(vCpZzHl?JS$FF2BZ3z5rW#&y|~>yjz4U9ame0t)9NgaBwZ~|$8vTk zd2R;GQRlF^_e-a1hPxC-c>*6#qDeCT*dhxH05+o*$Z|?c_tL>c^JJHjvt*^ItcJMGI zY2;L=n|Pu1(&%7tiA6(00S>=AarvZkjK`rBHG2m~ZHysL1Ljntw=Rw%ourZa-~`eW zW#Y$0@ODUwAQ@x77-RcmEFNPALyQ4`#yRjU0l>EdD?oms;kkw{HN3!&8*M9)TjDGA z-9UT~uX0ddsVy-eUWVMC+zddz65kKR4?_OK(PfVx6eKmMnsR&NjUAGp50xP&tRgF> z;#GBpSNuw_qAEc(tl|TXacP+0n;7XSfuFQf0zeQU468A~2Ogn(je(-qpDyMME38=j z{61#VSK1ea`xOHlXtRzl2F|#?Su}iISae_oFRVV6GGAETkZatChN^P|_y8Qlv5p_p zV1#4c!VwM}G~wQ7%cIKvf2=6Lpl{&5W`&0o;xd!~EE%Cp0Pxl8a<7RpWJfqY2k8yS zvzpap8G#@GWz@SE0l&6{#OtF^XDGwW%vz7{qx(uT&v5byzG!UjGf1GsX! z$2AJ0g5Qv^V!_F4A+nh*5(U!E3|7=J+vx|;cbRtgX7S#jI3jbMs8wcVS{a=sy>CoDJcPH=}Q z1Iwfo8oX83U<%vC*VGi;!2)YDaidLm0#dGL;V!z+jevS$ow>El6x>5*u)c(i3FReB zDqIh(XQfpZ29+xe;+$1}4>kIxU&8>aVzSD~f;MR{R!! z!erWF6F52dxd*|KxR1srb+>2(L@~`R4$azf?gc!157Dhl6Y0p4Uj9|c}uoh53PaYbuFvJtMfDm^4 ai9H*dQZzUMu7pt-nk=5fDGVuomViI+@={0u diff --git a/vm/stdlib/compiled/latest/stdlib/067_MerkleProof.mv b/vm/stdlib/compiled/latest/stdlib/060_MerkleProof.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/067_MerkleProof.mv rename to vm/stdlib/compiled/latest/stdlib/060_MerkleProof.mv diff --git a/vm/stdlib/compiled/12/stdlib/068_MerkleNFTDistributor.mv b/vm/stdlib/compiled/latest/stdlib/061_MerkleNFTDistributor.mv similarity index 98% rename from vm/stdlib/compiled/12/stdlib/068_MerkleNFTDistributor.mv rename to vm/stdlib/compiled/latest/stdlib/061_MerkleNFTDistributor.mv index bb8c651a7e8ad0a5f1660696ce1e189bf69436e8..21a56f784bd6b882257ffa1021b6e2245f948e56 100644 GIT binary patch delta 12 TcmaFO`I>XWG)9(<(?eJQBHIMC delta 12 TcmaFO`I>XWG)9Jv(?eJQBF6-< diff --git a/vm/stdlib/compiled/latest/stdlib/062_GasSchedule.mv b/vm/stdlib/compiled/latest/stdlib/062_GasSchedule.mv deleted file mode 100644 index a88bc854cbdc989962d4af5fd31115c84138bce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8488 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 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/063_GenesisNFT.mv b/vm/stdlib/compiled/latest/stdlib/063_GenesisNFT.mv new file mode 100644 index 0000000000000000000000000000000000000000..59de3f76bb59d8f63089259d60c76ade1448ffaa GIT binary patch literal 1204 zcmY*Z&2Aev5T4=BlDnk-)`}y?PUE(>7AX*)gx-SK4SaA4RJkuU7Nro?{$NEbRZo46 z+`-|_Ej@dpm&NBj%b zZ~PP2pORtncXF1!SI72)`V)KqYDRbj1{?%PpaqfvfKmWjgOm!%mnl>r4lN24M`Q`X zC=QTPCK$#6EagE@Qt^I_3^XmnGy!}_)NH~GQvx56R~+~Hz)yxFrWEfTB&ft=AkP$~tlB{& zg;Gc{RwGC>`96}^+cS&#$nG+5AI21g+%=cIbhTUi^{XFV_g*xedp@6cZoPKv-sRlY z!7se)C^o)w-OnpW*12DY&cC?{O~>h&{MZKH)ct#!%X-m#cD!<-oZLsRd>vktZTZHp zeAo_``|3r#2!*FaMU;_1FWuge`Pv6xuKceq_3NUdbT=1qJHBa`T{(9}Xm;sg+qxY` zu{ldNuJennncq~^wjd3wxv6#vimqvb4NWLl#rmdgS6k`px%-7*mu>(5%?(~&yt{RJM>?p;w4rg-PW+rn4n(&^4E>GoWg zxvCA@UAPye>@n1VBt>=j`c7Fab}wtuHC3^B7WHn<^3GMw#ue91)t39KvU|}*OA;3} z0iXXcV+Z*xl-+gX>-(pXv7^cBx9)U(8#%pIaY~N?7>*Db%PEyJhGWhdKG?mzGcB~r=0PaPE^<4o{V~yJl}AdBgpswMk=HEF_^P7r-`3(D-F4cLrw*gG3jU&%kGkpl5hZ1Y2un# VMmYAAW*}Bd46(&VrYe3p{sVR{-Y5V7 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/064_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/latest/stdlib/064_StdlibUpgradeScripts.mv new file mode 100644 index 0000000000000000000000000000000000000000..3e9fcaba3bda416d9d9f559f1ef94a303556c5ed GIT binary patch literal 2143 zcmaJ?Nsk*v6n<6Jdzag8&*IrKdy+|jgiM%86X4)@vMI|9v9n2_R*zkFn(=g7-R&gK zAAlc$ggA2Lz=ecJ_y{+m!`+Yw5o2>zWNnnkx zonsGP66I?;r~W{{CHfc2r-tzjFKFNK5BZn5zbPsbpuj)@6*SPn023^*fkO@)$U^~K zD8d*aIyjCFuB#9rrl|uxt3dG$j$iHtNf|>=P<%`BFfRECNhT#JQ6y86n`TI6B$-7= zFekYalFTDf7f?l8BpQ$<-2l35bD}saIRd#=MDiz*Sd!CM9RlX5d;yfxE~duUfKXl6 z&mfk24aUG&9YMq6WKUE+FPD zE)j6wUPg>vUO?@_J0uUqcUM-4GPZUS1@?QVkUG{xVX}B)V%}PqUbI%GSEo-}r>57e zGuGJ&qH&-aXM|I(FiSOn5d(;Z+fs>248k<7D#WH3S5kv08n-C3C_znzwkA*mIbtaI zVW6tCLRLi!Jn&OmYABS{1VvF8Gx}P#J^)a_6dS!rJM|`k`S8nU&dOhw&nN^9~ZBfs{IMOO{)C^m> zN}PytqmhU-73ui3Bz_^H0aVSBAQP>gbzMXv4b!{VYNa7t4O@{&DnTdM4clSX%ij*7 zRySyg2O>$)IYV7_yV(>;VLPfk3BsYvtsvI6lc3%ftXivZ-1nNpE(TZ1zC!Jyg>J{Z;-6HPOGFsmi-z}|?HNqOIX z(jj(BD`;aTSP^Bnn?zO^g;^N1!xzFxLU_# ztJRxTzr3||?`pNGC88n3{ybj!6$Nnz?qmbr38Uuuvo7;E&d)wQ!QCjY9oFuV)r-NVPKr)U!e~{@Yo|}jaU;dD`9iee5 z@R=LwVwk4gSGAi~N2i&aR)8RMW;0LQp~+=^J+ew~M=I<5<*M!x%bo$EX}I%e3K5(}@r*l5RieN|-T`;cW1Kh$d5Qy`>S+WQ)et5OVW2v)b7zpX zrIx$IO?TPTIdj;-y*+Ip$v+4x#un;u6>-Q|C6 Wb2w*)!3Z@ai-{b*nl*wI3jYB0>fpHm literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/12/11-12/stdlib/072_Genesis.mv b/vm/stdlib/compiled/latest/stdlib/065_Genesis.mv similarity index 78% rename from vm/stdlib/compiled/12/11-12/stdlib/072_Genesis.mv rename to vm/stdlib/compiled/latest/stdlib/065_Genesis.mv index 78701566bc289c4f9bc8bc6bb1045d23b4addc26..33844f2593aa50b8af308821bfa077d0140224b3 100644 GIT binary patch delta 507 zcmWlUyKmD_7{$M1-`H{N#J;J0o4AgBlfGyjr?2p)DNradv$8Oh3WipSy1-H~GDWCD z3`j^FSlFtJ-5C&K;NR$f03G-|+@H?5_j{cCCBBFUXUU~&5s?EL8Ka>&{%nX3W>WcP zUK#e8_0y?d`hoS&e-G~}n0y>;pHPZV0yU}6J zmUW$*X~v;%d75y$%j%A1-1U0Yc%$b*&3jx_*9)LFczlg%U@zJ~e z!`-99SFaDAACF%i?;pIK{xE+Fe4T!(zCb&dd83ehw~&RK%fjHPv^aqroLaT-SUWwh RO`N{l=hszPOrN=b@E<9xKN0`{ delta 502 zcmW-bNpjOb6o%igZcEl+4Yt&=6v=I8a1u*)MrMaFa|tfME;n$6EsIo=9Z*!UWkWt@vv>uk4R* z`%4ttKcX`PKjW7dv*QKUBw<}rz7c>B#|~wgWR-84xT+iqLkC3JJrig54QarSw8a>L zG2$>CvvRk<)3#-cQf-5z=FYZ(rQ4tt&1+1(G=@*wBm{IFPM9+j+%YZX(Oy7Kx!^U^nh zA>rnT)vY1pcCbbry}ke?cep6f8=&5tZFvWHvjmpux$nU8lS z%qKOQw4UI&3CFNGXM9nQIAik&BP2Lu+B1&f*_&Kg?Jg|sg59Ag*q1;&{#%M5X#>?Q^wz>-C$>_2%`}>T+$Zwo<)SyHf?%XvPD^2$6^o)Cjq& zT?kl!#shR~d0xiykcDz%0lQB|GKRIttvNn2<_qo`juYe}=5WEaXMLa_&J{@4_`*6H zn{XV@s*kv!@K4Z!z%>C!BigsoVHiXxvNlqY!XYg*nT2b~4>KUvI4NJCjgcxE85s>I zLQbToLj-6XU>uT-Gk{>^Cg9_U#Ta^{z<>+^*A8m?ndnr;#_Otp2}%ZiSV3-`iBTiQ z333A_OOLc%Ve`*a?3Q@(*-P)y-d_Kxmxhn~gZNRWGl+-7c6xc- zFCHet-Q=Jb4<5G<+pm+iNqXXr81AchFYOO!O<( z-W+k7e%;56-$k$cos)$bJn9~$(YqvlL$Z?0ht@~NI@5`V>7ak|vF8c@Bkzlu z{HX|3+&xTBqAnJz@NuO}@z?2~y_ZHq+X9LuJc!fib$b|F4NcVEAZ}wLT*8x%Zvj@) zN~Ty=E2)xRk|yo9$sb~!45LAOkPOp!5YFInr$A9e80y|2IZTs&PgzFNZ6Cz>DH>5% z155YX-B?nto=y08BeXCpQ{e+DI^OVm@jDw&IYUNOwk{UFgJ*peX`{EFMmC)UldGKK zpz*m6L?S!i@nGRQxu?bBuOqTt`cRy*^s{Q|3_em6Q^ zkJ3KosXIsA?n$(t#BV#0bOfCT>bhfFrtE5)q-W;F8_#4gnbcr1iIUEmH*Suk#3a>S z+w#P8@eH-S9zJjPI&Wib&)tZx@C?&M74`SagZTGH2@*4hIsbI$#m?@t-RRMiCtvRD z?&8r((#WdLxAA%#q|w3XN{hyZd>ns!{t8L&7!OA$Y7Y*Mx)?)&2F$8PZ)_YTI#-$c z=seQvW#-3)|7J`IKbc^^onZSDES_KoV~hcR!a49A0l+`=jR5&n!RHE|Dfl6N@o3ut zxg)-Ce&mbic(H@?g|j0@#EXD?vztE1AB&&(;->-sGQ0Zm^Ma%Tr|HTkg`y`yCv&fi7GWf8#ne8yTkI&pI%5f6nrZQtJOW(Av}kjAQCR!x9zH z)$F_GKy&Q>c@mh~mz_#R3#Dp*TYTE?Q?3pI|n z27`TXdd8vux$F;HC$!TFU34g3=DHLmM&kp;6GuSsgRdxjds2R^SSfetoIfGD6uwXkz7a7~Xae zv^Y*43uRN|mfXh3f)?9G$3Y9W0j^?Un#)aCk$t6Fw!t11hi)DI5a0$i z5Ks7~3pcG~d2*;o(%`^*R#&_h9#sVunbHB}a0#a_~ z;10S_EuVT~thstP2W!amH&?JRfjo~%1)G6!jWmvdQRR#4=-0s`WE*ch?0~l|ag{B# zt(;{nFSvLOxZpCEy8?e)fM7oU6QQ`m|2=%XZ&{63p(bjw=G4@hUNhCOs%p7fzE-HR F{{T>1nu7oU diff --git a/vm/stdlib/compiled/latest/stdlib/066_GenesisNFTScripts.mv b/vm/stdlib/compiled/latest/stdlib/066_GenesisNFTScripts.mv new file mode 100644 index 0000000000000000000000000000000000000000..b7c919154c3c62050477b515465a3716f6423676 GIT binary patch literal 121 zcmZ1|^O~EDfq{XIk%5Jog^QJsk6lKI!%l$5j~^(?$iM`|j7&_749q;tTwF{H%xqv< y&^o_-GYK*>F#rIFm_a;7 zW-!IX#LUFV!@$JJz{$wS#v|gHlA2eNnU kTvC)@8K0V4P*MrB1{p9iFtRW(GV?K5FfcK~n2bye02THb^8f$< literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/075_MintDaoProposal.mv b/vm/stdlib/compiled/latest/stdlib/068_MintDaoProposal.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/075_MintDaoProposal.mv rename to vm/stdlib/compiled/latest/stdlib/068_MintDaoProposal.mv diff --git a/vm/stdlib/compiled/latest/stdlib/069_IdentifierNFT.mv b/vm/stdlib/compiled/latest/stdlib/069_IdentifierNFT.mv deleted file mode 100644 index 44d5f27272aecd2f94a15d3e82260ffe92ab259a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1493 zcmY*ZOLE&r5bf?6V1OAAACaO&N{*F}EuTP!E$35CB~@M|StMDrAQ6;NrT`WQ+0iAm zNRMiyD+2-#$lZ7MwgNIG0h_jLDr{icbTcgKGj7XStbn)I3Y;unfMOe=1G|C?NJ@gD)_8(J5`4$C#weze5OgJjt|aoc4JM`q>;cVqaJ`P>2;#kH7>%NFgAa?q0EUP0NyqM=@Q!I+S{`Tu1+^_1os@KB0->sUWD&6mkt1_?s=M`t(*m!n% znXj6lGcyL)xB8;Z&dNm-?%dh+O%wmPnrBV^Wwy#Lie=GkORJk^FwfUbUER*|>s50* z{NJwQRow4Ixu}Axys_l7f;ZteMcM2KovS)48?RkwP30HsStm`gSG_6M(k`aXo140v zU1XQ9!sqPm2;4ezjtjc^)R?Td6bFnPeFY~!&U02t+%71F= z?6R?YTa{$XI?v{}yUJj5Ae(l(v3T|%_7Ku?$VIVSZp&HpcOgM<_NDfHiH3^8A6z=4J&O5sFm11Ua%&%p@{-$X1(q0pc3$ zI00qP1cg8^x~txM^-A4cUtjzT6##e$F^dC!{7DQ(e!(;S9e*+Jo0yv);*JCe3^)jo zpp??Um_|Z1;ovbu4L%?DV2VRQu#pH{D+C#ML`mPLokszoF@_*!$^gzyj9MkL2yihc zo-HvUfmtAE?P=5|ilf;K4PlZiBLl`c3PT4n!%!LYff4hEQWJ*^C3=8}oGIf2hDbs( zU=;8tr}cW+xDQRyW@~qmw`J3J>TO+JmW4WN`m(N)^DO_I74H46I?XByT6Iwtm1~a= zReOtfS$*EtP2FW1{n51@RW9?a%H75edw1Jxvg(c7xqRrIy`CEX#o1;uaL*3sW6k#D zc{i-C%l-fud)42ZJVpCb3wLVx324K zefcz>9>}^~+4XjHYY$Xdxf{FPUw+XHt4-Nm*%908MO9ahX64~RKmo{ONE8hWg(Ad| zr8HJ!;>9qgArD0;Q>3pZP=*tjGA71U-D?t`$q`rtm;|pyM4n;FUyT9H-hL%fDn@-O HlR1Om0OO#{ literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/070_GenesisNFT.mv b/vm/stdlib/compiled/latest/stdlib/070_GenesisNFT.mv deleted file mode 100644 index 803cfbad5736fb932c885e0ad731821ddbb67af5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1242 zcmY*Z&2Aev5T4=BlDnk-6-SPp#7%A~QlLHwy#=uw_}~<%b6;#MN+GKK!HQO@zCxd( zy%*>U^a%>|+6U;dKp&y#aAm`(1k7?~zWF#GcZWY6|7{WgFbI~}FZfp*@e2;+Z}Fm?!<5V@O8{rY&kmVoO5hPi#c_WC{PAeal;XWRdiD$=;BkuVV!llLzdy~Pz(2R!T;ba1+5hWUdMxtgSu^HnT zLypK3%QNyii{!}YGR-vH;#1%zp(?F3Qc?V)RuO@+BTC6df{;$lnB-h(u9YDGk??3V z>cpxJA}N(ZinIw5Brf?rlh|9I#d>6S6}V4hib8hHWp7;NHh%N=>vz4^b?aU&7OmTC z+@^Q2a8>Y2?^?=DFJ1fH+R^IFZ$j(e--Np5!K;%`?U|d;cCBoUM)lJsZbGRB+x6j4`jab!53@)gG>D;FR9!uM0{k?xYg|W{Z%>o0YyEO(7B^+N%Sq09VaiTS-qv-np$^45-`q6KdMACgaNqOm zqUry?&%vAXx93+ESNW^6vv1F@u54`Yu4f%3E{aeb6m)QH$nQiI`?H)>?qgmOCjaQe zhuoLN%IVgv=pbF2xv~knF5T+{br|YElAoVVd8TD>Y$E_>tt;?_L zvMKhbX7{4=h9oX&BtHFN#wO#dP_);zukK$=#tvuiKDd+3ZRX@w#R3&hVi7kZBwdL5%e0IAyc~`oLih1ft=bWi*Tm3|BZZR`zk4u`${tqwB&jlNdQi zD-0Mh<}W$pv7D%gfH6VD{K0J0w-k91M+!1NfRWBK$o6hF zH_k}hxNt6m<6l7h z4Ugmx_&a)kiJ!RtuQyTO`C5PPe_(#~mHo~CQ3ihmD*Q8WfxwV)CYWT3c?vvW%%VpI z<~xmZK^kL1xD!71z+<>6Kmi*uKu<7@+zBH(&B{&$%5%ohA2~76#)(K1vS3pToQN@W zVm9sq=94a9!6Gus`$P)2*&Gz#S$FWby9uDg9&7;<`}adyA8c>Xdaywj_0A6M`Mc{5 zA0Be5=e;emjN)(>E?CUtaXeW>(Uiwr#xp*TCbL--@kKndku~u&T8~5w$}*6^QCY)r z#72N}*pNv82U>0{dbR7U9A$qhfv&}LtL_DGWw|6!a_C{fKo9S7fWa-ODXPvdsyDgcg;0q>S+(iq>zC(6bCzc|%bT{YuDdw;Bj5di z`}v?FuE}){$TwW?xpulYG~w3J>bP=>*#>UV;f)ybo(xPFOI@oZ7N02BZ z4+;1h zjkNw-OAIAMYeGZ5PXj}~BkfblQDSXi{6n-d42Tvtp%q3tVn>(+CP+f7~-syF`{&fsE7xbNNf4>8SCw6r` z4jj5W7B`%Tx6pVXw&lc~xe}}lxRJ@^*qU3O3rcDX4LzC{blpHN{}Ds&@;sm>A;Pic vAx~z)m&Rk!+C#&WIq{|;L+xQYlGH-vXp#lmK~KiXBAKIWGJ=gE#+dyFEJxYd literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/071_NFTGalleryScripts.mv b/vm/stdlib/compiled/latest/stdlib/071_NFTGalleryScripts.mv new file mode 100644 index 0000000000000000000000000000000000000000..b3b1bc6616d60d18162dd85a73106b62c476bad6 GIT binary patch literal 174 zcmYj~F$%&!6hvqK-_0gw2?|z{!ot=*C(zDDFA%~8gdkxP3y zWd^_zMon$@#vZn=Ip$&QpSv^=0*W(GSwKlnP`f}>l^*KVN`ZpRye8Yt<#ao@!w}-@ o+Qs`gPpe;(wOtp+IiF+unEDXY$-f91P%AVLF40yfSxQ5}7wv@=tN;K2 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/071_StdlibUpgradeScripts.mv b/vm/stdlib/compiled/latest/stdlib/071_StdlibUpgradeScripts.mv deleted file mode 100644 index b53e7f3f3f9a2d1ee96f357fcec55bae401585af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2068 zcmaJ?OKclu5T5_vr+3$nwc|L=+vy{1fR?5tT?!Z1N!zFohphXOkX9S}x3k#ZwRYD{ z-4i!J;sP8wAmGTIo;V;75=SoFkU-)kAt5dtk(l3)k|v^S{j;<4_-5w+$Nzjh`-d(A zK!U&uT{$i6{6fUXbXxk3eo2(~#dlQoLn9-9X6zfEB)_6)NPvO>B1j;E0xBdx104)V zLJHE50TZ&2g9$}RgQh8vPAfpph>&~UAV9J&aw-Uj0=WyEhdk#eIVo^5MUfoi+_ZpX zhLc$l$sFhAIaxrWED{V~R0zmL6;oP559v6PR1rz$1QMNdY7q<5PHH-crwl@r1@+Whr@~3lW zaw{1k8$e}4AOG&ms#28@Rp534(M6(CWF?Y- zA%_xVb%dgvCO{NLK~M*Vx;#{%KoE6h=pd2-M^K6A^57*98A0TMzo4KVVFtmtg)#i* z$w{SiRR~+EwPW$ct`WsTM}8?KOQCmffzq>$SbOpT6Px&7Rw2 zcUTx9wt%)$rO{wvrs9|PT+bf{+i(N961ufE6YOf)z;)Z+7zz?qufw9)?R2GT&|@YkL07xCA@{zY#lezsnG|fhV$>Iovc^ z_Atg?h@EKAO?-#4b!>q!=pPVG-56}-`0x+(+||unoA#FNlr}bYHf>uDS)H-YJZAii z%{PZ|yxDGI(brjD z-OLAD-+b|2X|DC{?vHPN{VBiB>}qL8qs7Jh-e14}^wC@1a`3tJtDJnD{tR#b{m*Y& z^WhKP_xJzoXmowe>o%fG=gz&>vA1gvYWJG;_}Vq^PPJ5W!$(!t+ik7gyWrjJceYEx z^~()!=gJ$~H}B)U4pK@3Q#TC-47`ptqTo*_W>N<;MF|=ZZji>6!DZsg>Yz}$$p;}m zieTm_pF>2{LFPk`Kc+zW^dSkHcf_2qaPC9jkD++loS_mCA(Kvl zIcrgaq)=rEDX>IKBKS}l)dU45PzBkkGsvPf0u+sexn$v7NC~5y04&8)4cSl((NJ~4 yN|?)rluYP&vln!{sdc4Lur!0Bf5Os{Qgi7)Ujv86C>Ws$&Wfq0O4G(_k;1}yEopiNkKo$#c?lC2+JSkzH;;ku zwR#r{0CEIjS<6;syDC2%XAdm(6F0F!AVAE4DXAonBuP0-D#+A0OqsBhAHeyT%0V9Vjpujyu LtY1K)e;|Sn$x0z& literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/075_Signature.mv b/vm/stdlib/compiled/latest/stdlib/075_Signature.mv new file mode 100644 index 0000000000000000000000000000000000000000..2d57b33358b2a2014d49ed0adb58e83b8329240e GIT binary patch literal 343 zcmYjNJx{|x47Gii%Y8&q%fiAxU@E9m7#I*@L>-X2Mj$FaTf?ELpG4F7>U6?yuwN)BfTj`J$Dm2n32KMu8XuXkj2C1z@z4 z_#j)WWXu_lfSw#s2m*B+x!94HzyN4bG(>giJ<*Zz1W0JSJIX={aNwTm*QOZvJ^P34 z<6TwtJPc;jjdk0YEtg~4J1%=J+ll*guCCVW)lEJX?{!s-oOk=@H=ffI&wc$eFXUi7 zaemsf^^o(f8)x0L4XcJf^w92D9RGh}NZc+01YD{_r78pMGfXH-gIb!55(*@)2uM=N GXTTo?`ZYHI literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/076_ModuleUpgradeScripts.mv b/vm/stdlib/compiled/latest/stdlib/076_ModuleUpgradeScripts.mv deleted file mode 100644 index f2d215e295f47705bf56c11f22c759c52fc43203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 zcmaJ<&2G~`5Z>88J6^}JlhQ(k5Qqa8PCfY!94jgXxURPG*0qS&mVeUr33vi7+>m$# zj)><$;w2cz2`UA#vSw$#@0)L|)qH;VQ%OR|1V~KdfE}0o14QB@EWID_jrm_hEWe5% z{4PEL%79S92q%I_;^85Tc?0evLnai!BLN$t+U6lgcq%YN5(xKEE7b&f83Y*lOd%RW zNJQdI3CyQ6@VrGF5jaSYXZK)^g6RUs9>y_YM?TiRKk>nzMzbi67eg}(1(Tr&C}Y4w zynu$3;RiB=38BdTrsb9g3Igz-0T`9xgn$ARq6x)>9h_EKzqW7dyfK+wu9~9mTKS@K z7ey{#HBHsD@^#%6l}pad>b=SBn`?J!943ui7P+&{{ay3u^wLykO;uN|S$pqn(_-gh zW!%cHbw3W#_1d_n_S&xc&gybI{|`>rTLb%Gci+`)PLA9DyezuA#9+MGQMZRZ>g&w> zJ*({+MDv^H|EKj;(Ov4YaJnl>d-xB3y*W9|ZKwB!y1S}$eQ8=7m@I2-+v@7#XtjM* zZLf>A)8{vOM=58o^k#gidEK9{i}q3v*r?~OayBm9#;l7>npI?6rNv#meSrDd zz6MT!MI`ZXH8JH16io@GL*YkcC>2v&i4<^k5EN<)rj+ublzUAQP%!}W021|tPth|> j+2bL>Egw%3rF_t*B1xzm)X}IG!uLore>R$>5^3@aR2#wG diff --git a/vm/stdlib/compiled/latest/stdlib/084_SharedEd25519PublicKey.mv b/vm/stdlib/compiled/latest/stdlib/076_SharedEd25519PublicKey.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/084_SharedEd25519PublicKey.mv rename to vm/stdlib/compiled/latest/stdlib/076_SharedEd25519PublicKey.mv diff --git a/vm/stdlib/compiled/latest/stdlib/077_NFTGallery.mv b/vm/stdlib/compiled/latest/stdlib/077_NFTGallery.mv deleted file mode 100644 index bda70d9e15f10338f3b469feef051e14342bf596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2178 zcmZuz&2rpC5T2etNi!qukF5RkCb1Lem%!0XND2a#giu8Vs-WPga=fy=RrboYtHkk< z2jBrXaNrR*<;0OU;K~J#TzLR`M$+08sA{LDd%o_kd!{wopQe9lNeGF7Bs6)CJ^B^+ zcXU_0rGL=i2k|!xzmK}|$7nZQPd0VfSefNwOD$Q1fer_BIQI+V`NVHI(8yu zi4z;F<3v^m8`QyuUGF~Xc`@$$C=-$*QfyY-i$#>CGvCgOxM2oz)jdS+S#4*$RLkE5LDwQw=_h1!p* z7Qm!og5eJXBd87y8fps11Dbj_=|_SiXClxNw3`PF6lCig5$aaamBcQu2JC`dWOy-a z12E>nO%&m(!DMAE0xxKwBEl$k2&z8+wKEzVPn|Zai(_p{tWCDv6+vBqy4FUh7tg-_ zbnp1MSf0zL%VoJ-iKnlNMa9rAzc{Vt3+qXBJ09J z?}Gb<)T?S)o;QI_t2!*+GM67<;X$LbaJ@+BrkFCI?279m*TvV`cG_zDi8i2&Y|>4< z;K)X*NUvwf7Vj!z0e|#y+HyT02HzbG9}&^VcZdRT0xThxQ3?d`g+n~LN_SiOhidYO zyiYz(Df55;0Zb!<2FodTw((Svhj?j-rg5yn;0~I?;%I9&5x#Dn#|=M;aa#9A5a_X*d|7b&ucQN zr3rLET^iT#Dwh;f>{3!1H_~>fW*5wcD*RM@l3Jl)n@`0MA(~oEl@H_d+vYosBfab> zI{57YxN*HX2;221;5e~Lz$!%|u%2lwupZ19tsI$pwvY91X$H3I%BG<|uH;`wQ=g>< zho_MP?A&R19>>kLk(v)K49E@sF!;J^ERZX@!*|5Mt+`r_h?y3)_axRA1r0DK>=bw5 zDLfaz&UuIgj`?Qh4<75n-U)>Ay`$NO5)V~4tK%_#l_0Jw!c zjHrQO39~~U3LOA8pk{W2JA)T3c4*?AM1nv(ficC8B?b}RQQHaaIz3D@u^l@xfPHl- Q5ZDoZqY+O?1{uxBKcMIgkN^Mx diff --git a/vm/stdlib/compiled/latest/stdlib/090_TransactionTimeout.mv b/vm/stdlib/compiled/latest/stdlib/077_TransactionTimeout.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/090_TransactionTimeout.mv rename to vm/stdlib/compiled/latest/stdlib/077_TransactionTimeout.mv diff --git a/vm/stdlib/compiled/latest/stdlib/078_NFTGalleryScripts.mv b/vm/stdlib/compiled/latest/stdlib/078_NFTGalleryScripts.mv deleted file mode 100644 index e9736e40d3098473a75e9cd4f6390736cb29f34c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmZurI|{-u82%qg+L|B=PU7m~;N;-wq??QGrIaW_TT2W=j^i;rf@kp(K7#1rzkF}_ zFQdCw0FWRE785a5a%Pf6NUzv4Hyl4B1OlW)07nq?QYhaFRfObiG7FZB2H3Eq3^MGm zm)liQRn~<~=?<+wb-s=&%F?!e;B0+7+uYWz5BWZ}Q}2rAw6o5{Qf?dX!th@;M%~XK b%ID+1hkyc*HOztVLy_o3r3Q_f=0xxSXZ-MX5bgQioms6kk}NwUIJO}%RHce4PCif-jH6IFki?emTWe`7Z!GVM-Bl8} z@*lW!;mVN{XHJ~?5&Q#A^sKy;U`m>LJ^iNpbx-yF^x!We0U#uBM2|Fk@&n<&kU;!O zekAG-`Zo`LS3UWsdKLW~{6>*TfC2*!0wgF1AOsBtBIrO2UFdZ>oB+{U0a)ZhpAy1h z!2CYsxQiW0fRBg*wHpKw?@3K~bkAVi491v`7#4`vlBGIRJ4$2A~e{ zPH;3Bg8Im#j}ehaJ4oz34u;S@MmzjuM444W$N9=j!Y_&GHxX&RJ2q)A_t~Rplx% zUKO)zIWEhhtcK6a;(M2$75P=RnABxjyTy0*bvnDj(9`#A4mO#d$w{`zT^UZZTUXWT z?Mh6G8<)phik>^Sw`IOwUoNxi`qj#--B#{H6ze*^^oo;JSuBgi+68WvHNdnWdHZ?L zdPgaWFY9FCa#v+ll5Xl@3s?8D{B63-=1E#E*0(ON@6WTUF0;#Z?Gmi1ZCG;UT-9H% z=2&I2SQeM*GO1C@2y@J^H_1lNt*cX{q)|G5v##pI`F;)m%PE@%ckA~#x;Ls(>~OVd zT(W(x@02FRRrl-h%kkvJBsqQd>|#8b^h)>bI>TpatFhNFI|!@m&H3b-`!T+M!`xvvznFJs&1J$#@maq zpfy?GKL&oWKyLt|@Lz;u-7JQ~*CKI;aMCGGF`<6$#p4((x5B7Hu7p;^%HtSLAkr~t zYJ(UI(KvfrXlX+{lZF~$0;?mmj5MKPh8t}ShQ+T=$KVA+zib6S;}%F%CNSX%p_m)U z&}YSHNNoux)F_2220kT*)wV;K=UyN;w%tQ6MX12`jyGy!VH>rYSbM-n;+|r*e~i}P zfbWY#MbX;MaKenVJN$|GOi3(K2R_+YYui2IPn#4Y{)Kp|c+&xtpiO9Z#kmPoaLCUa O#vXqu&Xqt0g?|9PsuuD9 literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/057_TransferScripts.mv b/vm/stdlib/compiled/latest/stdlib/079_TransferScripts.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/057_TransferScripts.mv rename to vm/stdlib/compiled/latest/stdlib/079_TransferScripts.mv diff --git a/vm/stdlib/compiled/latest/stdlib/092_TreasuryScripts.mv b/vm/stdlib/compiled/latest/stdlib/080_TreasuryScripts.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/092_TreasuryScripts.mv rename to vm/stdlib/compiled/latest/stdlib/080_TreasuryScripts.mv diff --git a/vm/stdlib/compiled/latest/stdlib/081_Arith.mv b/vm/stdlib/compiled/latest/stdlib/081_Arith.mv new file mode 100644 index 0000000000000000000000000000000000000000..5a0bdc47ad7b20dd6210dab05a1c9982a9e6343e GIT binary patch literal 395 zcmYk2O-=(b422y#nPlc=L8UT-pdc!-Lx>_O_MCzxVhVyv{E3z`a1PGLA;3-%gCiw& ztoQOcpOY_CL{vFq;c;m9Z_=(~elQBsH6)aCbzWa^IxwGStQ+AF;>1C26^F~>%kXP|+Z=?A*nAQ}Jw literal 0 HcmV?d00001 diff --git a/vm/stdlib/compiled/latest/stdlib/081_PriceOracleScripts.mv b/vm/stdlib/compiled/latest/stdlib/081_PriceOracleScripts.mv deleted file mode 100644 index 9fc3054e32464ca19f39e147e1cd114bdb85369c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmZ8bOA5j;5S^K%shWTy=*p#_E7!e+f(HmC1_?-8(sbd{qj(ID;90zcX$x99i^sel zyyxa41puT7obfH+i{vm%vj zC-00s`rO>?*?3olS`MUzD_qc*Jmk7A8*l8~+pDXC^}6gjqN$>5*W;YFMez64DBY{7 Z@AM=NA07h6WIQ#$r diff --git a/vm/stdlib/compiled/latest/stdlib/082_Secp256k1.mv b/vm/stdlib/compiled/latest/stdlib/082_Secp256k1.mv deleted file mode 100644 index 5f0dd612f4273ea6dccb1faa22d56d430200a532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmZ`%J&)5s5S`gCf9%E=gM|=+0vbxh=`KpgMIoY~0FfVHImr@PN$hCtB#LzP755`f zqM_igT}ws9*ufGYSglqw@4a~|&CHjl_gVpfMo>&eJb5L?LcV+B-Qaihf3Uu~n_ECV1(=#$)N4XoFTs4fcV_0UHQ8Tx?A z2Oct}2+$4CB<;mULogsi&RdQuFn~rEKrprQ?fKq~!bo41Z zeB8~}`TV^-MlCYUmqk|ZoPA;Eiz-W9c1X9aBwg8K`q`D6ba0W*j~9$A43uv25vnUhK1VzDP5-+-+=8i>lmMQIv(H z?*4v|Q+G~>`&S*qP*b1Ux0y*`A{d1pJ{L*`9>nUUh6g~6BuZ%LL&6xv=Aoty(5#P1 k%#AccOL3+}3_~zn#zQn*bH-`z;(w;dWM_&AZ2~1f0Yy)2RR910 diff --git a/vm/stdlib/compiled/latest/stdlib/082_U256.mv b/vm/stdlib/compiled/latest/stdlib/082_U256.mv new file mode 100644 index 0000000000000000000000000000000000000000..fbb223ad108d0598e566bf57c580840d5588c978 GIT binary patch literal 1411 zcmbtU%T5$Q6utH8M^*PcV0fc~sHnjp6Cf->po81d#i3$e_H-w93nD|Jnl&myl3))arJ>6y5HGH?)?-E z=bc>9pQRIgkrz(*O>^KGaS}u>k%UZ&Lvf_C7O0*B=DT3pO2z{Ve6Y}ZYZhF$tYKNx zvMI}^Eo%utW-M;jvN_Aldbzt@fUG zDeZ2H(aBIJ-8?>xI>=Fp2wjQS0LSTBWzC{dC5}&eB26LzuYg%V4=_+}FU3C2+&t~r zobqjyrLq_2W9+Ekh?CRqFdlTe+0n@;N^*Z3Cr865PZKfj^}@xMmGV z&-_4W-ZG*U%I2KmGe+6lRnTmplr)SPVrCL;RX$c5PF3AHO2QS~MEpSN3F@AFq&%#u zV$H!zNGPBAtul8ZBDofK<-;-!H)2gba3yyISK`v>61Ug4+^WG=rB%Zk9Vlm|to6Qh z6dp%&e!WIsQ*nj2WRw2|<^yJ*Q*A+0`&UV2I9lEggrTkdr`rK)+M|Gl%jf7}}-yj5NP6C8jIW$TgHa%t%LtbL1^*SA+1VZp<0IBEUgzP`=_&X6E&xnZ=evhAfR@( Z_BV}xXlQ6SLLwy!1qB5X4FZIe)(ZB3tPnf0ogg2A3(!$<1P;X| zn7D}8)sEi0H*chUU+2F*1^|O#$T)R6*S98mxJo|o6U{e`!Vf))jzFM@5)_CDfEETK zQUI}*l86jOkg`U}tcx82da^*l3#1e05uzlv##&2GE_y(NC;-)=cSHl@2#_##c94Y< zU_luf9(4OuzE-Pl*RZ=;-dz_(!)+ViZ@aRt;w9%@-B`{W&g(rlXIxBYv&m()U%i#Z zs^e_CdtP&&9(iucmwqG*%ROgD->Bt$JDttflT5bAgelvMH`}h)Rb8>F_+7X4hC{(^ z*VKJ>Xe6fpM*@(DMjkwlRZyu~fOZQE6s2B`lLZCxB)=yhc}f!0VhE|19L5kLu_ZzK LXfc>meL?UCh08)- diff --git a/vm/stdlib/compiled/latest/stdlib/094_YieldFarming.mv b/vm/stdlib/compiled/latest/stdlib/083_YieldFarming.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/094_YieldFarming.mv rename to vm/stdlib/compiled/latest/stdlib/083_YieldFarming.mv diff --git a/vm/stdlib/compiled/latest/stdlib/095_YieldFarmingV2.mv b/vm/stdlib/compiled/latest/stdlib/084_YieldFarmingV2.mv similarity index 100% rename from vm/stdlib/compiled/latest/stdlib/095_YieldFarmingV2.mv rename to vm/stdlib/compiled/latest/stdlib/084_YieldFarmingV2.mv diff --git a/vm/stdlib/compiled/latest/stdlib/085_SimpleMap.mv b/vm/stdlib/compiled/latest/stdlib/085_SimpleMap.mv deleted file mode 100644 index 0effeda9fd8a7551e7aa7b6084c83a3ce1d4c1ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmY*Y&5qPY5bmn3?zX!<_Uy1b%OXS+A;bY`#R<&j!rzh;;t(mBs05R#zShtin40(S zH@MIE36i%owjXHM|4Vz}Gg0=1zUt9GiOoMIVh0M9R^*V+yatKrfEA+viIhbx!jTb? zpcRpV6X9J?37CkMrC!8{f{0vYEO3%rP;kk6g}ZXZy`2f~)5#w1`@p-tyw8XY-e-Q~ zb6@yzkx%l2Vp1Gv7XVWZC!a#Q(QK-~rhwa9(On9>HUtO=8n$%My$@tCRk8uH#fBmn z1T`>p54xVnxMo@pq1NJZK!l^wdDe_}eq*aOC%}pRwpgxCyA(3GS;20=5zbJVa6*zh}rV2%TAiQs}}Wo_E$W&CvB{{IGV?G*EZ*~xLkGT z^v9x}+tXOT=>D{ATsAMGJzK3~+i5m2FRRnDNb{vmcHG_-!tZHAJNo2WL zH_Pba>#nU%IueD18rH9>)ogIukHf_VI+2l(rIXFDD1}(0YRu0@*x8mr1uiCYNBdso zkmh+@t%;&06X^(hZ+2-;uo`H-!9dc^+A~oZUx7X>m$vt_~H$k$? xIlEh&f~Rfi`DB9qwFq=v9I4EeF1RwmVE&V~F=-%f>P5rKwDi&hd75|%>N|W)c2WQU diff --git a/vm/stdlib/compiled/latest/stdlib/086_StructuredHash.mv b/vm/stdlib/compiled/latest/stdlib/086_StructuredHash.mv deleted file mode 100644 index 41c885886649f58283e437ef9e5ef86c382d9d6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmYk0Jx&8L5QX22y|!bUg-DbsDN=*@Q94KpXcELC+GyFVv{g3Rbqemm1&}xa*Wwb4 zJ4T~7Gw&Y(z?_yg)_B2xeW diff --git a/vm/stdlib/compiled/latest/stdlib/087_StarcoinVerifier.mv b/vm/stdlib/compiled/latest/stdlib/087_StarcoinVerifier.mv deleted file mode 100644 index 684d44fe5845cdaffafd90109c0a8e06a708ef5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1910 zcmY*aO>Y}T7@qGP&y1a2XPvL6&4+0#4j|GN6mBGKq##mS)d-2xYVB+qQ`>9pZc@sT zWB&yguDu~~&)#8P6IS>wBX@e9@RJ^es~ zKiI!q|E5CqyLwN}pTWoO@8B=h{Ll&!KnWw92qFVQ6y5-@4hZJ~g|z`Y06Bn#B*ej$ zG`(9(HwanrV(5p+K-ad8kkw|3kXS+2S%J%12#6gW5wW|;9gI;#sTrRP1U$49yx_D93X>r#xe^rE>~nwsxMsuxPux}D{P%l|WTxSE22#>AH%k**b=<_dBKQD^>t*-K!6VAc%L(x8S8SN#GM|mGTLb%T6TCOi{ zX8!#6$FR+fd~)8ETs8ckcCG9=+W z?Aghy{_-& z!7N{rxD=M*(!e#eUqkNBA@7TOYBBeQb+^P1*w}F}v98#bag!gAXB|tIaH(9eoPj+M z4~1V@@l|JzOm1gw%5Y_pc+Jq8TDBbbw`ctTa#7+Y60pSb<4$bZ zEfR*tdm_e)Mi#qtXlO{{mV&N3-!MiSzz#`EMa;LygI)1t$rJ>ZV!NfB%&|@ZyJTMg z?u#G(Z?GZ?&}uZKu?_ack4rHNObgPMj8IU#$C{{M>E&cI)UXlsnh8q2}zcEu;N2oy%bAe88D|EnBoajL}*xszz_z=GX+ SLWe_6sqZF^_GJ`*asL6IU=6YW diff --git a/vm/stdlib/compiled/latest/stdlib/088_String.mv b/vm/stdlib/compiled/latest/stdlib/088_String.mv deleted file mode 100644 index 4b51f4373525345475828b2193f430dc1ee0f914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 927 zcmYjPJ#W-N5S{(>dS~tPUM`3r8iWD`QY5;gOhHY7M0>j2If+H^oopY<75o@}5j_n( zR0vVf@z#MPBYAfA&D+_xp85Rv2U{XyK~6farYpU3=F@fdTYMGni>mB5HS@oe4S&>6 zS$ww=WI>V?QASc`0(%XFjD)jF12?GXQYP1q$miIyM-(^^6$(+QfK7^$s0tIJ7)nw) z3PECOEve$b;f{mD2kw7qFNJj^td|mN3Y7wk>Ox4MW5P?N5GW&52WHf>*b!$H#yb=NMh7OTs8^?qc=TkJpi=nm;Y zTy~4I&8}T9yZznyes{L$M@6pb7xjnju(wxrdof)4d#Rz@k9X)Ksc71d%d2LMbIYOD z{pLfh+f7@eefLc$mpYtGp$GpAzuL>xWRWpVs1y~=<|NTC5{5B6v4|Lkv{g(M;m;wo zDP(Y?l^VeGl?MawadG6^X`rtiz5%ftK($QE) z4!K8R_Q3{o!iFs%SL7@s!MjMDGaX8UIkosOsA#REJgL%2)m%t_yE&~S#-C;{Qzlq% zPb-L&oE_^4w94b8@J8N4Z%4`6Jj#P+t)Bppc!M!d^I+KMXXXXln+LFkMj73dWI+81 ghCCYWn5HxbV*FeM%%Uuk5C#$?!Y3-iXB4iI0i@H z3~Ufv4nTE#GLu+pSJkUmRbAcH-=6<98USJhNiq?|7nDEnQ2oR^^nTGj`M+hR|H&8O zy^76OC8O`^55=E-ncVr30}&`emK-jSEdfZvS}0h65{v_Ap`7Vy&q-hV77l;~K^Qoa z5upVm5jsw6T&5%%Go@yfS>#xG6kBqEhJ=I(CdAdIIa@Snr#<7>;V3MU?9}RFJv?|= zJ=l0yt*+<8tZLfxdc7DX8~icmpY`2P&%0IhpxE4T)2@bPe_OQ|m&0xT#IpXPS@xIJ zx;vY-XP;WPLFK4=(RLq)ndsW9CRP~`$rEO;aVlMoCK$_bPZ!ZDADn^+Fs zH*f@d#6t}H15}2IB_7+!Bapn*4yGd>2sS5K2q8w|jS;1IDI;qcDy556sbQ{|qY`1DU R_8Un8OsM1HKuH&Scq)jIBbUKp-hZbR(u_US_ z72CW1MVFbby6SY*f9Op2{e!Oh5$y#fDr($f#?Zxm;GS~;6F)BgB@Bd+h0&I_#r2&( zG5JATroU>xWA;6H!^}6LV*Db0!uB8b&ngom4e5v=iVVb%i7dpCKsG8N2bEC;xyVD+ za+zR+ZJQxfg9>y>!{-&_EYI}onkTC8EjZ!aw&d}kS)cUJ%c{%94@Ra!R8_@3J3W0Qes`sUmQe%=F$RPoCi&B*7pJI$0DCz6u6GS0-$?(}_oe zth77Ij^!YWIzbjE^ow5HIT88%LY@Xm$o7tdXz(~J?Zt`Q4Z}pHsZ7~^ke)vZQo28k zJIBU;lEg_$z6{c1_j%Acfd&U>MJK&|uxGTR?m#BiLDZLN7W9YoAU=@;X9m|pDd%RE z&qs&7C_R2QRG4S+t1aSDW_%+%0N6QHfc;?-_u}qInsONBhA0gG^^RFY%h}n$e;c@! zuZtig)&t;{WPVo;WE!P@Fs7?_Wmbs>uY+C``a#ki^+B(NFiNu|Ivi!v&)%x*A4!>d zqhT0;zuSusgPxxO;ySeHfOP&CZ(n8sqy%;lz8a+&fC3q7|ISHr{SCm8W}R|3Nc}ho zIz8zpG6+4u>0&V!z$4B=Wma z1m{`sT!vO-lCy*q`uxaT2>0V~1PFp&FFuvw<=KuiI;zaHlSIR;$ef$q5hU`{s6Xm~ zMhpZB1|8}2qJ9KAoOPrOWmr}86lIk=p-@c~Wxy;U-ye+nhcc-_r*PEopZft^WB){+ ztMdk@><_bZGd&J&`8#*+)>Wy>m|S$YQYv@uG|G;{BsletlDO|rpui3+gab*Vj17Zx z1;LVMaM~bLR#nvUyX=RuC%Zr)EERVHWXfbYlu7hj!c7_99`9n`@;fZx^E^ASZk8u& z-K2~=omiyu_hd{Q2;Kw@ zUK6aT7lJh%~P0t$roc>xpUVG4;%n8Ipd4SJ($-nFHz65i5V#I|igot=Vs0rY}H<-xG+ zlI;K#=ri5j5v3LtjFlT?LtzG7+;ufwH9G)`o?C4YgIY{?Ynx-b4s~<73dWTwjHL@* zFF5`eh5}&-!@Wdq(3`9TQgTxvdc?U~T_d|WjykzdcNxod2Ao`2?q%8*CaW|^JI|OS z&uN>PkfFhIj^>^UI3f^vqN0060pPgBxZNZbT4kEMu&G$AxQi{5izZp5D~zi4AdykX zT6dQ?c9+R@M{ilHwncAPwk0fb8?tnF)opOGQ%GO@u9GK#(Qa|Oq#8VS7j4ct&=de% zwCq-iK7o}3uNgw~0|gX%Y)qAgMRS!XrEPZ;;6VG8yxA7V4YEL&nE^2Aw(>!AyFr?C zJNGHR#eavoXAEdtwh4kd8{{s%H|A&l2jZ7pyThETWRE^%7AT{X5>}HurO)yrMdYPY jN|;UZEqyuONrU#+nk1kh695UW7OWfO740*wP6GV{H8i-P diff --git a/vm/stdlib/compiled/latest/stdlib/093_U256.mv b/vm/stdlib/compiled/latest/stdlib/093_U256.mv deleted file mode 100644 index 5114e77f7fa3bb190418c315f2b2e2fa6f316645..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1125 zcmaJ=%Wl(95S{z*ecEZ9K0;|1ybBUiX_Qn&Vo?x$0&F9fn95ROSB_Iuwx}P%k_{X7 zY}oKGtXY>C$L@m#quk>&Gskl$bFaT_|Mm(1JOjm*6z)uZW;{4&&-D-Xhner9tA2_X z?n0>WTz-|&H^WiR08s-7WFWZ!2#6_(paTR$%qj$@5jV*w(94#5gRmmntSS(L1j zZjE4_V8dZ=eN3=Tt%2W;I!L#WZfI`605iaq0sJw}9Oue$#v~J5*Fj*I5o8V*v%s7M z`F1ecS8vL)DCg>3`o1bkkxVA~eK9*p%2Z6U)0GcpF&iIc$Ky1gWJ&Ip{#ljIdo`VA zRW(hUtgS6Ts-oD?71XqnDhI$s=#B2NWo1%?Is zx+=!Bjr^3Bg*?itc{j^XlW8^?C*|>Cmgbe6XZi6ot%^KqQ}ZgRQarNjhSLIJCQV3~ zUk&4o;{b&r7sn5>+azj_IA;>qEmt4B4I=2U*m?}1-0x~V45gEFp=x^|p9IEBx(2oN zF$-OA@|9i-xnnIAjyrKrKK6{^P4V1|`|^>NTniqEWe|@an}%jfhg%AAqYk_j>P}Pt zp;Up@EMDK~fQco?UV(1oe`FSA)L*#iU~th`Qx3L=q42PG_-q(rPX`dP2)lc&BX;>0 z|8YF)0jC>prH4_hxFNorlgFklcI0p&g%DSStAlHWWMY7L!>~a2sz8Wu#aC{GZtu$N zpu0-$Q<|~DZ?ZNV^<}enr43NVG>`i`wTeDwvYV=Yuzf>?Rck}lXzy^>Q~f4HZ;rP3 P8f`2FZLob}|49D=@Lhsr diff --git a/vm/types/src/on_chain_config/gas_schedule.rs b/vm/types/src/on_chain_config/gas_schedule.rs index 14465e2bc1..52115bbc91 100644 --- a/vm/types/src/on_chain_config/gas_schedule.rs +++ b/vm/types/src/on_chain_config/gas_schedule.rs @@ -2,6 +2,7 @@ use crate::gas_schedule::{ G_MAX_TRANSACTION_SIZE_IN_BYTES_V1, G_MAX_TRANSACTION_SIZE_IN_BYTES_V2, G_MAX_TRANSACTION_SIZE_IN_BYTES_V3, }; + use crate::on_chain_config::OnChainConfig; use anyhow::{format_err, Result}; #[cfg(feature = "print_gas_info")] diff --git a/vm/vm-runtime/Cargo.toml b/vm/vm-runtime/Cargo.toml index 0342015d01..ea938b6aef 100644 --- a/vm/vm-runtime/Cargo.toml +++ b/vm/vm-runtime/Cargo.toml @@ -34,6 +34,7 @@ serde = { features = ["derive"], workspace = true } starcoin-parallel-executor = { workspace = true } rayon = { workspace = true } num_cpus = { workspace = true } +hex = "0.4.3" [dev-dependencies] stdlib = { package = "stdlib", workspace = true } diff --git a/vm/vm-runtime/src/force_upgrade_management.rs b/vm/vm-runtime/src/force_upgrade_management.rs new file mode 100644 index 0000000000..eb0a10712b --- /dev/null +++ b/vm/vm-runtime/src/force_upgrade_management.rs @@ -0,0 +1,84 @@ +// Copyright (c) The Starcoin Core Contributors +// SPDX-License-Identifier: Apache-2 + +use starcoin_crypto::ed25519::{Ed25519PrivateKey, Ed25519PublicKey}; +use starcoin_types::account::Account; +use starcoin_vm_types::genesis_config::ChainId; + +pub const FORCE_UPGRADE_BLOCK_NUMBER: u64 = 17500000; + +pub fn get_force_upgrade_block_number(chain_id: &ChainId) -> u64 { + if chain_id.is_test() { + 50 + } else if chain_id.is_dev() { + 5 + } else if chain_id.is_halley() || chain_id.is_proxima() { + 300 + } else if chain_id.is_barnard() { + 16085000 + } else { + FORCE_UPGRADE_BLOCK_NUMBER + } +} + +pub fn create_account(private_hex: &str) -> anyhow::Result { + let bytes = hex::decode(private_hex)?; + let private_key = Ed25519PrivateKey::try_from(&bytes[..])?; + let public_key = Ed25519PublicKey::from(&private_key); + Ok(Account::with_keypair( + private_key.into(), + public_key.into(), + None, + )) +} + +pub fn get_force_upgrade_account(chain_id: &ChainId) -> anyhow::Result { + if chain_id.is_main() { + // 0x6820910808aba0dda29b486064ffc17f + create_account("70ec43d39c812e0c0f7b7b83e22fd0c70cf136f74c29bded7379e0d9589e4485") + } else if chain_id.is_barnard() || chain_id.is_proxima() || chain_id.is_halley() { + // 0x0b1d07ae560c26af9bbb8264f4c7ee73 + create_account("6105e78821ace0676faf437fb40dd6892e72f01c09351298106bad2964edb007") + } else { + Ok(Account::new_association()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use move_core_types::account_address::AccountAddress; + + #[test] + fn test_get_force_upgrade_account() -> anyhow::Result<()> { + // Main TODO(BobOng): To fixed + // assert_eq!(get_force_upgrade_account(&ChainId::new(1))?.address(), AccountAddress::from_hex_literal("0x2dd7136c13ed8051fb20147f373f6120")); + // Barnard 251 + assert_eq!( + *get_force_upgrade_account(&ChainId::new(251))?.address(), + AccountAddress::from_hex_literal("0x0b1d07ae560c26af9bbb8264f4c7ee73")? + ); + // Proxima 252 + assert_eq!( + get_force_upgrade_account(&ChainId::new(252))?.address(), + &AccountAddress::from_hex_literal("0x0b1d07ae560c26af9bbb8264f4c7ee73")? + ); + // Halley 253 + assert_eq!( + get_force_upgrade_account(&ChainId::new(253))?.address(), + &AccountAddress::from_hex_literal("0x0b1d07ae560c26af9bbb8264f4c7ee73")? + ); + // Dev 254 + assert_eq!( + get_force_upgrade_account(&ChainId::new(254))?.address(), + &AccountAddress::from_hex_literal("0xA550C18")? + ); + // Test 255 + assert_eq!( + get_force_upgrade_account(&ChainId::new(254))?.address(), + &AccountAddress::from_hex_literal("0xA550C18")? + ); + + Ok(()) + } +} diff --git a/vm/vm-runtime/src/lib.rs b/vm/vm-runtime/src/lib.rs index 2680fefa62..64d1441032 100644 --- a/vm/vm-runtime/src/lib.rs +++ b/vm/vm-runtime/src/lib.rs @@ -12,6 +12,7 @@ use move_core_types::vm_status::VMStatus; pub use move_vm_runtime::{move_vm, session}; mod access_path_cache; mod errors; +pub mod force_upgrade_management; pub mod move_vm_ext; pub mod parallel_executor; use crate::metrics::VMMetrics; @@ -38,7 +39,6 @@ pub trait VMExecutor: Send + Sync { metrics: Option, ) -> Result, VMStatus>; } - /// Get the AccessPath to a resource stored under `address` with type name `tag` fn create_access_path(address: AccountAddress, tag: StructTag) -> AccessPath { AccessPath::resource_access_path(address, tag) diff --git a/vm/vm-runtime/src/starcoin_vm.rs b/vm/vm-runtime/src/starcoin_vm.rs index c9402e5f51..f7e526d385 100644 --- a/vm/vm-runtime/src/starcoin_vm.rs +++ b/vm/vm-runtime/src/starcoin_vm.rs @@ -93,7 +93,7 @@ pub struct StarcoinVM { /// marking of stdlib version which includes vmconfig upgrades. const VMCONFIG_UPGRADE_VERSION_MARK: u64 = 10; -const GAS_SCHEDULE_UPGRADE_VERSION_MARK: u64 = 12; +// const GAS_SCHEDULE_UPGRADE_VERSION_MARK: u64 = 12; impl StarcoinVM { #[cfg(feature = "metrics")] @@ -143,6 +143,7 @@ impl StarcoinVM { } else { self.load_configs_impl(state)?; } + match self.gas_schedule.as_ref() { None => { bail!("failed to load gas schedule!"); @@ -197,9 +198,7 @@ impl StarcoinVM { Some(GasSchedule::from(&gas_cost_table)), "gas schedule from VMConfig", ) - } else if stdlib_version >= StdlibVersion::Version(VMCONFIG_UPGRADE_VERSION_MARK) - && stdlib_version < StdlibVersion::Version(GAS_SCHEDULE_UPGRADE_VERSION_MARK) - { + } else { debug!( "stdlib version: {}, fetch VMConfig from onchain module", stdlib_version @@ -263,13 +262,6 @@ impl StarcoinVM { Some(GasSchedule::from(&cost_table)), "gas schedule from VMConfig", ) - } else { - debug!( - "stdlib version: {}, fetch schedule from onchain module GasSchedule", - stdlib_version - ); - 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() { @@ -1068,8 +1060,8 @@ impl StarcoinVM { .map_err(|_err| VMStatus::Error(StatusCode::STORAGE_ERROR))?; let mut gas_left = block_gas_limit.unwrap_or(u64::MAX); - let blocks = chunk_block_transactions(transactions); + 'outer: for block in blocks { #[cfg(feature = "metrics")] let txn_type_name = block.type_name().to_string(); @@ -1083,9 +1075,12 @@ impl StarcoinVM { .with_label_values(&[txn_type_name.as_str()]) .start_timer() }); + let gas_unit_price = transaction.gas_unit_price(); + let (status, output) = self .execute_user_transaction(&data_cache.as_move_resolver(), transaction); + // only need to check for user transactions. match gas_left.checked_sub(output.gas_used()) { Some(l) => gas_left = l, @@ -1133,12 +1128,14 @@ impl StarcoinVM { .with_label_values(&[txn_type_name.as_str()]) .start_timer() }); + let (status, output) = match self .process_block_metadata(&data_cache.as_move_resolver(), block_metadata) { Ok(output) => (VMStatus::Executed, output), Err(vm_status) => discard_error_vm_status(vm_status), }; + debug_assert_eq!( output.gas_used(), 0,