diff --git a/framework/Cargo.toml b/framework/Cargo.toml index 4bf7b94d2..94b43f865 100644 --- a/framework/Cargo.toml +++ b/framework/Cargo.toml @@ -17,7 +17,6 @@ anyhow = { workspace = true } bcs = { workspace = true } clap = { workspace = true } dialoguer = { workspace = true } - diem = { workspace = true } diem-build-info = { workspace = true } diem-crypto = { workspace = true } diff --git a/framework/libra-framework/sources/configs/version.move b/framework/libra-framework/sources/configs/version.move index 22e3a7e34..92f249a5e 100644 --- a/framework/libra-framework/sources/configs/version.move +++ b/framework/libra-framework/sources/configs/version.move @@ -12,6 +12,10 @@ module diem_framework::version { major: u64, } + struct Git has key { + hash: vector + } + struct SetVersionCapability has key {} /// Specified major version number must be greater than current version number. @@ -24,7 +28,7 @@ module diem_framework::version { public(friend) fun initialize(diem_framework: &signer, initial_version: u64) { system_addresses::assert_diem_framework(diem_framework); - move_to(diem_framework, Version { major: initial_version }); + move_to(diem_framework, Version { major: initial_version}); // Give diem framework account capability to call set version. This allows on chain governance to do it through // control of the diem framework account. move_to(diem_framework, SetVersionCapability {}); @@ -45,6 +49,19 @@ module diem_framework::version { reconfiguration::reconfigure(); } + /// set the git commit of a current upgrade. + // NOTE: easier to troublshoot than the code.move manifests + public fun upgrade_set_git(framework: &signer, hash: vector) acquires Git { + if (!exists(@ol_framework)) { + move_to(framework, Git { + hash, + }) + } else { + let state = borrow_global_mut(@ol_framework); + state.hash = hash; + } + } + /// Only called in tests and testnets. This allows the core resources account, which only exists in tests/testnets, /// to update the version. fun initialize_for_test(core_resources: &signer) { diff --git a/framework/libra-framework/sources/modified_source/diem_governance.move b/framework/libra-framework/sources/modified_source/diem_governance.move index 39e408310..852aa9b9d 100644 --- a/framework/libra-framework/sources/modified_source/diem_governance.move +++ b/framework/libra-framework/sources/modified_source/diem_governance.move @@ -520,14 +520,12 @@ module diem_framework::diem_governance { } #[view] - // what is the state of the proposal + /// what is the state of the proposal public fun get_proposal_state(proposal_id: u64):u64 { voting::get_proposal_state(@diem_framework, proposal_id) } - - //////// 0L //////// // hack for smoke testing: // is the proposal approved and ready for resolution? diff --git a/framework/src/builder/framework_generate_upgrade_proposal.rs b/framework/src/builder/framework_generate_upgrade_proposal.rs index 0b2251087..9e266dedf 100644 --- a/framework/src/builder/framework_generate_upgrade_proposal.rs +++ b/framework/src/builder/framework_generate_upgrade_proposal.rs @@ -1,13 +1,12 @@ //! generate framework upgrade proposal scripts //! see vendor diem-move/framework/src/release_bundle.rs +use crate::{builder::framework_release_bundle::libra_author_script_file, BYTECODE_VERSION}; use anyhow::{ensure, Context, Result}; use diem_crypto::HashValue; use diem_framework::{BuildOptions, BuiltPackage, ReleasePackage}; use diem_types::account_address::AccountAddress; use std::path::{Path, PathBuf}; -// use serde::{Serialize, Deserialize}; -use crate::{builder::framework_release_bundle::libra_author_script_file, BYTECODE_VERSION}; /// Core modules address to deploy to // NOTE: we are always usin 0x1 here. So if that ever changes in the future then this can't be hard coded. @@ -35,20 +34,10 @@ pub fn make_framework_upgrade_artifacts( let mut next_execution_hash = vec![]; let mut core_modules = core_modules.to_owned().unwrap_or_else(default_core_modules); - // 0L TODO: don't make this hard coded - // let mut core_modules = vec![ - // ("0x1", "move-stdlib"), - // // ("0x1", "vendor-stdlib"), - // // ("0x1", "libra-framework"), - // // ("0x3", "diem-move/framework/diem-token"), - // // ("0x4", "diem-move/framework/diem-token-objects"), - // ]; // TODO: we are not using these formatted files now that we are saving them directly let mut formatted_scripts: Vec<(String, String)> = vec![]; - // let commit_info = diem_build_info::get_git_hash(); - // For generating multi-step proposal files, we need to generate them in the reverse order since // we need the hash of the next script. // We will reverse the order back when writing the files into a directory. @@ -63,9 +52,6 @@ pub fn make_framework_upgrade_artifacts( let mut core_module_dir = framework_local_dir.to_owned().canonicalize()?; core_module_dir.push(core_module_name); - // the governance script name - // let core_module_name = core_module_dir.file_name().unwrap().to_str().unwrap(); - // We first need to compile and build each CORE MODULE we are upgrading (e.g. MoveStdlib, LibraFramework) let options = BuildOptions { diff --git a/framework/src/builder/framework_release_bundle.rs b/framework/src/builder/framework_release_bundle.rs index 19888f582..925b2ef3e 100644 --- a/framework/src/builder/framework_release_bundle.rs +++ b/framework/src/builder/framework_release_bundle.rs @@ -55,14 +55,8 @@ pub fn libra_author_script_file( emitln!(writer, "use std::vector;"); emitln!(writer, "use diem_framework::diem_governance;"); emitln!(writer, "use diem_framework::code;\n"); + emitln!(writer, "use diem_framework::version;\n"); - // emitln!(writer, "fun main(proposal_id: u64){"); - // writer.indent(); - // emitln!( - // writer, - // "let framework_signer = diem_governance::resolve(proposal_id, @{});", - // for_address - // ); emitln!(writer, "fun main(proposal_id: u64){"); writer.indent(); // This is the multi step proposal, needs a next hash even if it a single step and thus an empty vec. @@ -104,8 +98,15 @@ pub fn libra_author_script_file( emitln!( writer, - "code::publish_package_txn(&framework_signer, chunk1, code)" + "code::publish_package_txn(&framework_signer, chunk1, code);" ); + + emitln!( + writer, + "version::upgrade_set_git(&framework_signer, x\"{}\")", + diem_build_info::get_git_hash() + ); + writer.unindent(); emitln!(writer, "}"); writer.unindent(); diff --git a/smoke-tests/src/upgrade_fixtures.rs b/smoke-tests/src/upgrade_fixtures.rs index 10321bf59..ac275258e 100644 --- a/smoke-tests/src/upgrade_fixtures.rs +++ b/smoke-tests/src/upgrade_fixtures.rs @@ -3,6 +3,7 @@ use std::path::PathBuf; use std::str::FromStr; +use anyhow::Context; use libra_framework::builder::framework_generate_upgrade_proposal::make_framework_upgrade_artifacts; // TODO: This could be generated dynamically at the start of the test suites. using `Once`. Though if the tools aren't compiled it will take approximately forever to do so. Hence fixtures, though not ideal. @@ -29,7 +30,7 @@ pub fn insert_test_file(core_module_name: &str, remove: bool) -> anyhow::Result< } let file_path = this_crate - .join("src") + // .join("src") .join("tests") .join("fixtures") .join("all_your_base.move"); @@ -42,10 +43,13 @@ pub fn insert_test_file(core_module_name: &str, remove: bool) -> anyhow::Result< pub fn generate_fixtures(output_path: PathBuf, modules: Vec) -> anyhow::Result<()> { println!("generating files, this will take some time, go do some laundry"); let destination_module = modules.last().unwrap().clone(); - insert_test_file(&destination_module, false)?; + insert_test_file(&destination_module, false).context("could not insert test file")?; - let this_crate = PathBuf::from_str(env!("CARGO_MANIFEST_DIR")).unwrap(); - let libra_framework_sources = this_crate.parent().unwrap().join("framework"); + let this_crate = PathBuf::from_str(env!("CARGO_MANIFEST_DIR"))?; + let libra_framework_sources = this_crate + .parent() + .context("no parent dir")? + .join("framework"); make_framework_upgrade_artifacts(&output_path, &libra_framework_sources, &Some(modules))?; // ok, cleanup diff --git a/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/script.mv b/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/script.mv index 71721caf2..3ecd1c4ed 100644 Binary files a/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/script.mv and b/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/script.mv differ diff --git a/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/script_sha3 b/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/script_sha3 index 497a44e0d..df9457818 100644 --- a/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/script_sha3 +++ b/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/script_sha3 @@ -1 +1 @@ -b83240b68e496aaf2ff6840bf46935cd93f4460a791096ee5725a67da12eee32 \ No newline at end of file +a6e7b34be7e67801f1dcd0087cfbe7fd721bbf45596dae3ee5c4439c180c2b65 \ No newline at end of file diff --git a/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/sources/1-move-stdlib.move b/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/sources/1-move-stdlib.move index a0fce799e..8e45d9296 100644 --- a/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/sources/1-move-stdlib.move +++ b/smoke-tests/tests/fixtures/upgrade_multi_step/1-move-stdlib/sources/1-move-stdlib.move @@ -1,9 +1,9 @@ // Upgrade proposal for package `MoveStdlib` -// Framework commit hash: 5b1067cb80b8bb3e5d3e3394e915815a03586cac -// Builder commit hash: 5b1067cb80b8bb3e5d3e3394e915815a03586cac +// Framework commit hash: bafac94d6edd39d972729db21156d47758eb8969 +// Builder commit hash: bafac94d6edd39d972729db21156d47758eb8969 -// Next step script hash: 7e30938cc147d4cf29adcad8110b39b76c81b81d785df911fc79da06416ec6be +// Next step script hash: f05bdad0508955fc2044f83c307228ac589249b025430ee664bedf61ddbf179b // source digest: B7AED5C969B8CA9DF201BC95AB87937D7A060ECFDC7E715CE3A0F6450AB8AD71 script { @@ -11,11 +11,13 @@ script { use diem_framework::diem_governance; use diem_framework::code; + use diem_framework::version; + fun main(proposal_id: u64){ let framework_signer = diem_governance::resolve_multi_step_proposal( proposal_id, @0000000000000000000000000000000000000000000000000000000000000001, - vector[126u8,48u8,147u8,140u8,193u8,71u8,212u8,207u8,41u8,173u8,202u8,216u8,17u8,11u8,57u8,183u8,108u8,129u8,184u8,29u8,120u8,93u8,249u8,17u8,252u8,121u8,218u8,6u8,65u8,110u8,198u8,190u8,], + vector[240u8,91u8,218u8,208u8,80u8,137u8,85u8,252u8,32u8,68u8,248u8,60u8,48u8,114u8,40u8,172u8,88u8,146u8,73u8,176u8,37u8,67u8,14u8,230u8,100u8,190u8,223u8,97u8,221u8,191u8,23u8,155u8,], ); let code = vector::empty(); let chunk0 = @@ -632,6 +634,7 @@ script { 110u8,101u8,114u8,0u8,0u8,0u8,8u8,102u8,101u8,97u8,116u8,117u8,114u8,101u8,115u8,0u8,0u8,0u8,6u8,111u8, 112u8,116u8,105u8,111u8,110u8,0u8,0u8,0u8,6u8,115u8,116u8,114u8,105u8,110u8,103u8,0u8,0u8,0u8,0u8,0u8, ]; - code::publish_package_txn(&framework_signer, chunk1, code) + code::publish_package_txn(&framework_signer, chunk1, code); + version::upgrade_set_git(&framework_signer, x"bafac94d6edd39d972729db21156d47758eb8969") } } diff --git a/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/script.mv b/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/script.mv index b4c749dce..5269752f5 100644 Binary files a/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/script.mv and b/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/script.mv differ diff --git a/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/script_sha3 b/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/script_sha3 index 5a424ae60..4b482bd82 100644 --- a/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/script_sha3 +++ b/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/script_sha3 @@ -1 +1 @@ -015988a1f5402ce5b4489b14fd9cc6274fc9351e23c0d062325616ef2d635a5f \ No newline at end of file +f05bdad0508955fc2044f83c307228ac589249b025430ee664bedf61ddbf179b \ No newline at end of file diff --git a/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/sources/2-vendor-stdlib.move b/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/sources/2-vendor-stdlib.move index d85c49ebb..796b4999f 100644 --- a/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/sources/2-vendor-stdlib.move +++ b/smoke-tests/tests/fixtures/upgrade_multi_step/2-vendor-stdlib/sources/2-vendor-stdlib.move @@ -1,24 +1,38 @@ // Upgrade proposal for package `VendorStdlib` -// Framework commit hash: 5b1067cb80b8bb3e5d3e3394e915815a03586cac -// Builder commit hash: 5b1067cb80b8bb3e5d3e3394e915815a03586cac +// Framework commit hash: bafac94d6edd39d972729db21156d47758eb8969 +// Builder commit hash: bafac94d6edd39d972729db21156d47758eb8969 -// Next step script hash: 2bd41ec336ad0fcb13eb65e1a9ae0b4a6d03d16c5f4d7bf08c32d98f9485d71d +// Next step script hash: -// source digest: 5E12DDD8987B153D75378183FB77218A1FAB6038899EB9121ECD4BE94EC1D598 +// source digest: 0394BCD63B579CE36066BB61B2EBDDA6BF3681B245588528CF63F30D7AABC6DB script { use std::vector; use diem_framework::diem_governance; use diem_framework::code; + use diem_framework::version; + fun main(proposal_id: u64){ let framework_signer = diem_governance::resolve_multi_step_proposal( proposal_id, @0000000000000000000000000000000000000000000000000000000000000001, - vector[43u8,212u8,30u8,195u8,54u8,173u8,15u8,203u8,19u8,235u8,101u8,225u8,169u8,174u8,11u8,74u8,109u8,3u8,209u8,108u8,95u8,77u8,123u8,240u8,140u8,50u8,217u8,143u8,148u8,133u8,215u8,29u8,], + vector[], ); let code = vector::empty(); let chunk0 = + vector[ + 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,8u8,1u8,0u8,2u8,3u8,2u8,5u8,5u8,7u8,4u8,7u8, + 11u8,28u8,8u8,39u8,32u8,6u8,71u8,6u8,16u8,77u8,39u8,12u8,116u8,9u8,0u8,0u8,0u8,1u8,0u8,1u8, + 0u8,0u8,1u8,10u8,2u8,13u8,97u8,108u8,108u8,95u8,121u8,111u8,117u8,114u8,95u8,98u8,97u8,115u8,101u8,13u8, + 97u8,114u8,101u8,95u8,98u8,101u8,108u8,111u8,110u8,103u8,95u8,116u8,111u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8, + 0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8, + 0u8,0u8,0u8,0u8,1u8,10u8,2u8,3u8,2u8,117u8,115u8,17u8,100u8,105u8,101u8,109u8,58u8,58u8,109u8,101u8, + 116u8,97u8,100u8,97u8,116u8,97u8,95u8,118u8,49u8,20u8,0u8,0u8,1u8,13u8,97u8,114u8,101u8,95u8,98u8,101u8, + 108u8,111u8,110u8,103u8,95u8,116u8,111u8,1u8,1u8,0u8,0u8,1u8,0u8,0u8,0u8,2u8,7u8,0u8,2u8,0u8, + ]; + vector::push_back(&mut code, chunk0); + let chunk1 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,5u8,1u8,0u8,2u8,2u8,2u8,60u8,7u8,62u8,200u8,1u8, 8u8,134u8,2u8,32u8,10u8,166u8,2u8,75u8,0u8,0u8,0u8,1u8,0u8,0u8,0u8,2u8,0u8,0u8,0u8,3u8, @@ -41,8 +55,8 @@ script { 16u8,1u8,8u8,2u8,1u8,16u8,1u8,9u8,2u8,1u8,16u8,1u8,10u8,2u8,1u8,16u8,1u8,11u8,2u8,1u8, 16u8,1u8,12u8,2u8,1u8,16u8,1u8,13u8,2u8,1u8,16u8,1u8,14u8,2u8,1u8,16u8,1u8,0u8, ]; - vector::push_back(&mut code, chunk0); - let chunk1 = + vector::push_back(&mut code, chunk1); + let chunk2 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,10u8,2u8,10u8,8u8,3u8,18u8,59u8,4u8, 77u8,2u8,5u8,79u8,29u8,7u8,108u8,201u8,1u8,8u8,181u8,2u8,32u8,6u8,213u8,2u8,10u8,16u8,223u8,2u8, @@ -74,8 +88,8 @@ script { 0u8,2u8,4u8,11u8,0u8,16u8,2u8,20u8,2u8,6u8,1u8,2u8,0u8,7u8,1u8,2u8,0u8,0u8,0u8,0u8, 1u8,0u8,2u8,0u8, ]; - vector::push_back(&mut code, chunk1); - let chunk2 = + vector::push_back(&mut code, chunk2); + let chunk3 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,11u8,1u8,0u8,4u8,2u8,4u8,4u8,3u8,8u8,66u8,4u8, 74u8,20u8,5u8,94u8,34u8,7u8,128u8,1u8,158u8,1u8,8u8,158u8,2u8,32u8,6u8,190u8,2u8,10u8,16u8,200u8, @@ -109,8 +123,8 @@ script { 11u8,0u8,56u8,7u8,2u8,9u8,1u8,0u8,0u8,11u8,3u8,11u8,0u8,56u8,8u8,2u8,10u8,1u8,0u8,0u8, 11u8,3u8,11u8,0u8,56u8,9u8,2u8,0u8,0u8,0u8,1u8,0u8, ]; - vector::push_back(&mut code, chunk2); - let chunk3 = + vector::push_back(&mut code, chunk3); + let chunk4 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,13u8,1u8,0u8,12u8,2u8,12u8,8u8,3u8,20u8,40u8,4u8, 60u8,6u8,5u8,66u8,27u8,7u8,93u8,128u8,1u8,8u8,221u8,1u8,32u8,6u8,253u8,1u8,10u8,16u8,135u8,2u8, @@ -139,8 +153,8 @@ script { 14u8,0u8,16u8,0u8,20u8,33u8,4u8,7u8,5u8,10u8,7u8,0u8,17u8,5u8,39u8,14u8,0u8,16u8,1u8,20u8, 56u8,2u8,2u8,0u8,0u8,0u8,1u8,0u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk3); - let chunk4 = + vector::push_back(&mut code, chunk4); + let chunk5 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,13u8,1u8,0u8,2u8,2u8,2u8,14u8,3u8,16u8,133u8,1u8, 4u8,149u8,1u8,24u8,5u8,173u8,1u8,142u8,1u8,7u8,187u8,2u8,130u8,2u8,8u8,189u8,4u8,32u8,10u8,221u8, @@ -190,8 +204,8 @@ script { 3u8,46u8,11u8,3u8,56u8,3u8,32u8,4u8,13u8,11u8,0u8,10u8,1u8,11u8,2u8,56u8,4u8,5u8,20u8,11u8, 0u8,11u8,1u8,56u8,5u8,12u8,4u8,11u8,2u8,11u8,4u8,21u8,2u8,0u8,0u8,0u8,14u8,0u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk4); - let chunk5 = + vector::push_back(&mut code, chunk5); + let chunk6 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,14u8,1u8,0u8,6u8,2u8,6u8,16u8,3u8,22u8,131u8,1u8, 4u8,153u8,1u8,16u8,5u8,169u8,1u8,116u8,7u8,157u8,2u8,180u8,1u8,8u8,209u8,3u8,32u8,6u8,241u8,3u8, @@ -246,8 +260,8 @@ script { 11u8,2u8,56u8,7u8,5u8,19u8,11u8,0u8,54u8,0u8,11u8,1u8,56u8,2u8,12u8,3u8,11u8,2u8,11u8,3u8, 21u8,2u8,0u8,0u8,0u8,1u8,0u8,11u8,1u8,11u8,0u8, ]; - vector::push_back(&mut code, chunk5); - let chunk6 = + vector::push_back(&mut code, chunk6); + let chunk7 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,15u8,1u8,0u8,8u8,2u8,8u8,14u8,3u8,22u8,185u8,1u8, 4u8,207u8,1u8,40u8,5u8,247u8,1u8,144u8,2u8,7u8,135u8,4u8,162u8,2u8,8u8,169u8,6u8,32u8,6u8,201u8, @@ -393,8 +407,8 @@ script { 0u8,55u8,1u8,20u8,25u8,11u8,3u8,6u8,1u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,23u8,71u8,13u8,11u8, 5u8,2u8,0u8,0u8,0u8,2u8,0u8,1u8,0u8,13u8,1u8,13u8,2u8,13u8,0u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk6); - let chunk7 = + vector::push_back(&mut code, chunk7); + let chunk8 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,6u8,2u8,6u8,30u8,3u8,36u8,162u8,1u8, 4u8,198u8,1u8,12u8,5u8,210u8,1u8,164u8,1u8,7u8,246u8,2u8,201u8,7u8,8u8,191u8,10u8,32u8,6u8,223u8, @@ -516,8 +530,8 @@ script { 2u8,0u8,27u8,1u8,0u8,0u8,27u8,9u8,11u8,0u8,16u8,5u8,20u8,11u8,1u8,16u8,4u8,20u8,11u8,2u8, 17u8,28u8,2u8,28u8,0u8,2u8,0u8,0u8,0u8,1u8,0u8,2u8,0u8,3u8,0u8,4u8,0u8,5u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk7); - let chunk8 = + vector::push_back(&mut code, chunk8); + let chunk9 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,14u8,1u8,0u8,8u8,2u8,8u8,24u8,3u8,32u8,98u8,4u8, 130u8,1u8,14u8,5u8,144u8,1u8,115u8,7u8,131u8,2u8,150u8,2u8,8u8,153u8,4u8,32u8,6u8,185u8,4u8,30u8, @@ -585,8 +599,8 @@ script { 39u8,11u8,2u8,12u8,1u8,11u8,1u8,2u8,0u8,0u8,2u8,0u8,3u8,0u8,1u8,0u8,0u8,12u8,1u8,12u8, 2u8,12u8,3u8,12u8,0u8, ]; - vector::push_back(&mut code, chunk8); - let chunk9 = + vector::push_back(&mut code, chunk9); + let chunk10 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,4u8,2u8,4u8,4u8,3u8,8u8,32u8,4u8, 40u8,2u8,5u8,42u8,45u8,7u8,87u8,104u8,8u8,191u8,1u8,32u8,6u8,223u8,1u8,9u8,16u8,232u8,1u8,37u8, @@ -617,8 +631,8 @@ script { 33u8,2u8,3u8,1u8,0u8,0u8,8u8,6u8,11u8,0u8,16u8,0u8,20u8,7u8,1u8,33u8,2u8,4u8,1u8,0u8, 0u8,8u8,6u8,11u8,0u8,16u8,0u8,20u8,7u8,2u8,33u8,2u8,0u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk9); - let chunk10 = + vector::push_back(&mut code, chunk10); + let chunk11 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,12u8,2u8,12u8,8u8,3u8,20u8,40u8,4u8, 60u8,6u8,5u8,66u8,27u8,7u8,93u8,124u8,8u8,217u8,1u8,32u8,6u8,249u8,1u8,10u8,16u8,131u8,2u8,117u8, @@ -646,8 +660,8 @@ script { 16u8,0u8,2u8,2u8,1u8,0u8,0u8,4u8,15u8,56u8,0u8,14u8,0u8,16u8,0u8,20u8,33u8,4u8,7u8,5u8, 10u8,7u8,0u8,17u8,5u8,39u8,14u8,0u8,16u8,1u8,20u8,56u8,2u8,2u8,0u8,0u8,0u8,1u8,0u8, ]; - vector::push_back(&mut code, chunk10); - let chunk11 = + vector::push_back(&mut code, chunk11); + let chunk12 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,14u8,1u8,0u8,8u8,2u8,8u8,12u8,3u8,20u8,191u8,2u8, 4u8,211u8,2u8,56u8,5u8,139u8,3u8,177u8,1u8,7u8,188u8,4u8,188u8,5u8,8u8,248u8,9u8,32u8,6u8,152u8, @@ -761,8 +775,8 @@ script { 20u8,56u8,26u8,57u8,1u8,2u8,43u8,0u8,2u8,0u8,44u8,1u8,0u8,0u8,0u8,4u8,17u8,0u8,56u8,27u8, 57u8,0u8,2u8,45u8,0u8,2u8,0u8,0u8,0u8,0u8,20u8,0u8,25u8,0u8, ]; - vector::push_back(&mut code, chunk11); - let chunk12 = + vector::push_back(&mut code, chunk12); + let chunk13 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,4u8,2u8,4u8,24u8,3u8,28u8,78u8,4u8, 106u8,30u8,5u8,136u8,1u8,224u8,2u8,7u8,232u8,3u8,226u8,1u8,8u8,202u8,5u8,32u8,6u8,234u8,5u8,20u8, @@ -832,8 +846,8 @@ script { 2u8,10u8,1u8,0u8,0u8,10u8,7u8,11u8,0u8,9u8,8u8,8u8,9u8,56u8,0u8,2u8,11u8,1u8,0u8,0u8, 10u8,7u8,11u8,0u8,9u8,8u8,8u8,9u8,56u8,0u8,2u8,0u8, ]; - vector::push_back(&mut code, chunk12); - let chunk13 = + vector::push_back(&mut code, chunk13); + let chunk14 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,9u8,1u8,0u8,6u8,2u8,6u8,4u8,3u8,10u8,27u8,4u8, 37u8,2u8,5u8,39u8,11u8,7u8,50u8,102u8,8u8,152u8,1u8,32u8,6u8,184u8,1u8,20u8,12u8,204u8,1u8,32u8, @@ -850,8 +864,8 @@ script { 51u8,52u8,53u8,54u8,0u8,0u8,2u8,0u8,1u8,0u8,2u8,0u8,2u8,1u8,0u8,0u8,1u8,4u8,11u8,0u8, 56u8,0u8,17u8,0u8,2u8,3u8,1u8,0u8,0u8,1u8,3u8,17u8,1u8,17u8,0u8,2u8,0u8, ]; - vector::push_back(&mut code, chunk13); - let chunk14 = + vector::push_back(&mut code, chunk14); + let chunk15 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,9u8,1u8,0u8,8u8,3u8,8u8,77u8,4u8,85u8,2u8,5u8, 87u8,15u8,7u8,102u8,130u8,2u8,8u8,232u8,2u8,32u8,6u8,136u8,3u8,10u8,16u8,146u8,3u8,107u8,12u8,253u8, @@ -888,8 +902,8 @@ script { 6u8,7u8,0u8,17u8,12u8,39u8,11u8,0u8,17u8,8u8,2u8,8u8,0u8,2u8,0u8,9u8,1u8,2u8,0u8,10u8, 1u8,0u8,0u8,3u8,4u8,11u8,0u8,56u8,0u8,17u8,9u8,2u8,0u8, ]; - vector::push_back(&mut code, chunk14); - let chunk15 = + vector::push_back(&mut code, chunk15); + let chunk16 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,13u8,1u8,0u8,12u8,2u8,12u8,28u8,3u8,40u8,121u8,4u8, 161u8,1u8,8u8,5u8,169u8,1u8,84u8,7u8,253u8,1u8,185u8,5u8,8u8,182u8,7u8,32u8,6u8,214u8,7u8,43u8, @@ -975,8 +989,8 @@ script { 0u8,0u8,14u8,5u8,11u8,0u8,16u8,0u8,20u8,17u8,4u8,2u8,16u8,1u8,0u8,0u8,14u8,4u8,11u8,0u8, 16u8,0u8,20u8,2u8,3u8,0u8,2u8,0u8,0u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk15); - let chunk16 = + vector::push_back(&mut code, chunk16); + let chunk17 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,11u8,1u8,0u8,2u8,2u8,2u8,4u8,3u8,6u8,100u8,5u8, 106u8,41u8,7u8,147u8,1u8,237u8,1u8,8u8,128u8,3u8,32u8,6u8,160u8,3u8,94u8,16u8,254u8,3u8,228u8,3u8, @@ -1071,8 +1085,8 @@ script { 5u8,18u8,11u8,0u8,17u8,9u8,12u8,2u8,11u8,1u8,17u8,9u8,12u8,3u8,10u8,2u8,10u8,3u8,38u8,4u8, 11u8,5u8,13u8,7u8,4u8,39u8,11u8,2u8,11u8,3u8,23u8,17u8,4u8,2u8,0u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk16); - let chunk17 = + vector::push_back(&mut code, chunk17); + let chunk18 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,9u8,1u8,0u8,8u8,2u8,8u8,8u8,3u8,16u8,65u8,5u8, 81u8,31u8,7u8,112u8,185u8,1u8,8u8,169u8,2u8,32u8,6u8,201u8,2u8,20u8,16u8,221u8,2u8,131u8,1u8,12u8, @@ -1152,8 +1166,8 @@ script { 10u8,0u8,11u8,1u8,26u8,22u8,49u8,1u8,48u8,12u8,1u8,10u8,1u8,11u8,0u8,11u8,1u8,26u8,17u8,7u8, 2u8,0u8, ]; - vector::push_back(&mut code, chunk17); - let chunk18 = + vector::push_back(&mut code, chunk18); + let chunk19 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,9u8,1u8,0u8,6u8,2u8,6u8,4u8,3u8,10u8,55u8,5u8, 65u8,31u8,7u8,96u8,149u8,1u8,8u8,245u8,1u8,32u8,6u8,149u8,2u8,10u8,16u8,159u8,2u8,104u8,12u8,135u8, @@ -1212,8 +1226,8 @@ script { 1u8,26u8,22u8,49u8,1u8,48u8,12u8,1u8,10u8,1u8,10u8,0u8,11u8,1u8,26u8,22u8,49u8,1u8,48u8,12u8, 1u8,10u8,1u8,11u8,0u8,11u8,1u8,26u8,17u8,6u8,2u8,0u8, ]; - vector::push_back(&mut code, chunk18); - let chunk19 = + vector::push_back(&mut code, chunk19); + let chunk20 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,9u8,1u8,0u8,8u8,2u8,8u8,4u8,3u8,12u8,75u8,5u8, 87u8,45u8,7u8,132u8,1u8,194u8,1u8,8u8,198u8,2u8,32u8,6u8,230u8,2u8,38u8,16u8,140u8,3u8,67u8,12u8, @@ -1272,8 +1286,8 @@ script { 53u8,2u8,8u8,1u8,0u8,0u8,1u8,9u8,11u8,0u8,17u8,10u8,53u8,49u8,32u8,47u8,17u8,14u8,52u8,17u8, 11u8,2u8,0u8, ]; - vector::push_back(&mut code, chunk19); - let chunk20 = + vector::push_back(&mut code, chunk20); + let chunk21 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,9u8,1u8,0u8,8u8,2u8,8u8,4u8,3u8,12u8,75u8,5u8, 87u8,57u8,7u8,144u8,1u8,199u8,1u8,8u8,215u8,2u8,32u8,6u8,247u8,2u8,44u8,16u8,163u8,3u8,67u8,12u8, @@ -1345,8 +1359,8 @@ script { 10u8,1u8,17u8,14u8,49u8,32u8,47u8,77u8,12u8,2u8,10u8,2u8,11u8,1u8,77u8,49u8,64u8,47u8,11u8,2u8, 26u8,22u8,49u8,1u8,48u8,53u8,17u8,11u8,2u8,0u8, ]; - vector::push_back(&mut code, chunk20); - let chunk21 = + vector::push_back(&mut code, chunk21); + let chunk22 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,14u8,2u8,14u8,24u8,3u8,38u8,165u8,1u8, 4u8,203u8,1u8,12u8,5u8,215u8,1u8,101u8,7u8,188u8,2u8,220u8,7u8,8u8,152u8,10u8,32u8,6u8,184u8,10u8, @@ -1477,8 +1491,8 @@ script { 22u8,1u8,0u8,0u8,15u8,5u8,11u8,0u8,16u8,0u8,20u8,17u8,5u8,2u8,23u8,1u8,0u8,0u8,15u8,4u8, 11u8,0u8,16u8,0u8,20u8,2u8,2u8,0u8,1u8,0u8,0u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk21); - let chunk22 = + vector::push_back(&mut code, chunk22); + let chunk23 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,14u8,1u8,0u8,8u8,2u8,8u8,22u8,3u8,30u8,159u8,1u8, 4u8,189u8,1u8,34u8,5u8,223u8,1u8,219u8,2u8,7u8,186u8,4u8,141u8,2u8,8u8,199u8,6u8,32u8,6u8,231u8, @@ -1591,8 +1605,8 @@ script { 1u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,22u8,12u8,4u8,5u8,12u8,11u8,8u8,1u8,11u8,6u8,2u8,1u8, 0u8,0u8,1u8,0u8,0u8,0u8,14u8,1u8,14u8,2u8,14u8,0u8, ]; - vector::push_back(&mut code, chunk22); - let chunk23 = + vector::push_back(&mut code, chunk23); + let chunk24 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,8u8,2u8,8u8,12u8,3u8,20u8,179u8,1u8, 4u8,199u8,1u8,16u8,5u8,215u8,1u8,166u8,1u8,7u8,253u8,2u8,253u8,3u8,8u8,250u8,6u8,32u8,6u8,154u8, @@ -1734,8 +1748,8 @@ script { 17u8,0u8,1u8,2u8,22u8,1u8,0u8,0u8,8u8,5u8,11u8,1u8,11u8,0u8,15u8,3u8,21u8,2u8,0u8,3u8, 0u8,4u8,0u8,0u8,0u8,1u8,0u8,2u8,0u8,5u8,0u8, ]; - vector::push_back(&mut code, chunk23); - let chunk24 = + vector::push_back(&mut code, chunk24); + let chunk25 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,6u8,2u8,6u8,12u8,3u8,18u8,186u8,1u8, 4u8,204u8,1u8,16u8,5u8,220u8,1u8,183u8,1u8,7u8,147u8,3u8,134u8,4u8,8u8,153u8,7u8,32u8,6u8,185u8, @@ -1884,8 +1898,8 @@ script { 1u8,11u8,0u8,11u8,2u8,11u8,3u8,17u8,0u8,1u8,2u8,23u8,1u8,0u8,0u8,8u8,5u8,11u8,1u8,11u8, 0u8,15u8,1u8,21u8,2u8,0u8,2u8,0u8,0u8,0u8,1u8,0u8,3u8,0u8, ]; - vector::push_back(&mut code, chunk24); - let chunk25 = + vector::push_back(&mut code, chunk25); + let chunk26 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,8u8,2u8,8u8,18u8,3u8,26u8,242u8,2u8, 4u8,140u8,3u8,18u8,5u8,158u8,3u8,203u8,1u8,7u8,233u8,4u8,248u8,11u8,8u8,225u8,16u8,32u8,6u8,129u8, @@ -2118,8 +2132,8 @@ script { 4u8,11u8,0u8,16u8,0u8,20u8,2u8,67u8,0u8,2u8,0u8,68u8,1u8,0u8,0u8,0u8,3u8,7u8,27u8,18u8, 2u8,2u8,2u8,0u8,0u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk25); - let chunk26 = + vector::push_back(&mut code, chunk26); + let chunk27 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,12u8,1u8,0u8,6u8,2u8,6u8,14u8,3u8,20u8,47u8,4u8, 67u8,4u8,5u8,71u8,63u8,7u8,134u8,1u8,250u8,1u8,8u8,128u8,3u8,32u8,6u8,160u8,3u8,20u8,16u8,180u8, @@ -2160,8 +2174,8 @@ script { 4u8,6u8,5u8,9u8,7u8,0u8,17u8,6u8,39u8,11u8,0u8,18u8,1u8,2u8,5u8,1u8,0u8,0u8,9u8,4u8, 11u8,0u8,16u8,1u8,20u8,2u8,0u8,0u8,1u8,0u8,0u8, ]; - vector::push_back(&mut code, chunk26); - let chunk27 = + vector::push_back(&mut code, chunk27); + let chunk28 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,14u8,1u8,0u8,14u8,2u8,14u8,24u8,3u8,38u8,205u8,1u8, 4u8,243u8,1u8,34u8,5u8,149u8,2u8,151u8,3u8,7u8,172u8,5u8,135u8,4u8,8u8,179u8,9u8,32u8,6u8,211u8, @@ -2347,8 +2361,8 @@ script { 5u8,1u8,3u8,1u8,4u8,0u8,2u8,0u8,0u8,0u8,20u8,1u8,20u8,2u8,20u8,3u8,20u8,4u8,20u8,5u8, 20u8,6u8,20u8,7u8,20u8,8u8,20u8,0u8, ]; - vector::push_back(&mut code, chunk27); - let chunk28 = + vector::push_back(&mut code, chunk28); + let chunk29 = vector[ 161u8,28u8,235u8,11u8,6u8,0u8,0u8,0u8,14u8,1u8,0u8,14u8,2u8,14u8,18u8,3u8,32u8,163u8,2u8, 4u8,195u8,2u8,82u8,5u8,149u8,3u8,225u8,2u8,7u8,246u8,5u8,142u8,3u8,8u8,132u8,9u8,32u8,6u8,164u8, @@ -2508,13 +2522,13 @@ script { 14u8,5u8,80u8,11u8,5u8,1u8,11u8,7u8,11u8,1u8,56u8,39u8,12u8,2u8,11u8,2u8,2u8,0u8,0u8,0u8, 1u8,0u8,2u8,0u8,3u8,0u8,14u8,1u8,14u8,2u8,14u8,3u8,14u8,0u8, ]; - vector::push_back(&mut code, chunk28); + vector::push_back(&mut code, chunk29); let chunk1 = vector[ 12u8,86u8,101u8,110u8,100u8,111u8,114u8,83u8,116u8,100u8,108u8,105u8,98u8,1u8,0u8,0u8,0u8,0u8,0u8, - 0u8,0u8,0u8,64u8,53u8,69u8,49u8,50u8,68u8,68u8,68u8,56u8,57u8,56u8,55u8,66u8,49u8,53u8,51u8,68u8, - 55u8,53u8,51u8,55u8,56u8,49u8,56u8,51u8,70u8,66u8,55u8,55u8,50u8,49u8,56u8,65u8,49u8,70u8,65u8,66u8, - 54u8,48u8,51u8,56u8,56u8,57u8,57u8,69u8,66u8,57u8,49u8,50u8,49u8,69u8,67u8,68u8,52u8,66u8,69u8,57u8, - 52u8,69u8,67u8,49u8,68u8,53u8,57u8,56u8,189u8,1u8,31u8,139u8,8u8,0u8,0u8,0u8,0u8,0u8,2u8,255u8, + 0u8,0u8,0u8,64u8,48u8,51u8,57u8,52u8,66u8,67u8,68u8,54u8,51u8,66u8,53u8,55u8,57u8,67u8,69u8,51u8, + 54u8,48u8,54u8,54u8,66u8,66u8,54u8,49u8,66u8,50u8,69u8,66u8,68u8,68u8,65u8,54u8,66u8,70u8,51u8,54u8, + 56u8,49u8,66u8,50u8,52u8,53u8,53u8,56u8,56u8,53u8,50u8,56u8,67u8,70u8,54u8,51u8,70u8,51u8,48u8,68u8, + 55u8,65u8,65u8,66u8,67u8,54u8,68u8,66u8,189u8,1u8,31u8,139u8,8u8,0u8,0u8,0u8,0u8,0u8,2u8,255u8, 101u8,143u8,65u8,10u8,194u8,48u8,16u8,69u8,247u8,57u8,197u8,80u8,215u8,198u8,122u8,0u8,151u8,186u8,19u8,4u8, 193u8,77u8,41u8,54u8,54u8,163u8,132u8,166u8,73u8,153u8,137u8,90u8,40u8,189u8,187u8,19u8,138u8,110u8,220u8,254u8, 207u8,127u8,243u8,166u8,26u8,76u8,219u8,153u8,7u8,214u8,42u8,152u8,30u8,97u8,7u8,197u8,5u8,131u8,141u8,116u8, @@ -2523,31 +2537,33 @@ script { 186u8,95u8,188u8,31u8,19u8,134u8,12u8,229u8,111u8,4u8,43u8,56u8,68u8,130u8,19u8,69u8,57u8,7u8,41u8,130u8, 11u8,156u8,76u8,72u8,206u8,36u8,132u8,102u8,154u8,100u8,49u8,207u8,141u8,164u8,48u8,16u8,250u8,167u8,69u8,45u8, 22u8,22u8,7u8,49u8,197u8,208u8,186u8,44u8,114u8,148u8,233u8,226u8,44u8,208u8,9u8,124u8,108u8,141u8,207u8,120u8, - 173u8,55u8,189u8,84u8,107u8,94u8,254u8,129u8,89u8,125u8,0u8,165u8,75u8,106u8,135u8,242u8,0u8,0u8,0u8,29u8, - 16u8,98u8,108u8,115u8,49u8,50u8,51u8,56u8,49u8,95u8,97u8,108u8,103u8,101u8,98u8,114u8,97u8,0u8,0u8,0u8, - 9u8,116u8,121u8,112u8,101u8,95u8,105u8,110u8,102u8,111u8,0u8,0u8,0u8,8u8,102u8,114u8,111u8,109u8,95u8,98u8, - 99u8,115u8,0u8,0u8,0u8,3u8,97u8,110u8,121u8,0u8,0u8,0u8,5u8,116u8,97u8,98u8,108u8,101u8,0u8,0u8, - 0u8,17u8,116u8,97u8,98u8,108u8,101u8,95u8,119u8,105u8,116u8,104u8,95u8,108u8,101u8,110u8,103u8,116u8,104u8,0u8, - 0u8,0u8,10u8,98u8,105u8,103u8,95u8,118u8,101u8,99u8,116u8,111u8,114u8,0u8,0u8,0u8,8u8,98u8,108u8,115u8, - 49u8,50u8,51u8,56u8,49u8,0u8,0u8,0u8,10u8,99u8,97u8,112u8,97u8,98u8,105u8,108u8,105u8,116u8,121u8,0u8, - 0u8,0u8,10u8,99u8,111u8,109u8,112u8,97u8,114u8,97u8,116u8,111u8,114u8,0u8,0u8,0u8,12u8,99u8,111u8,112u8, - 121u8,97u8,98u8,108u8,101u8,95u8,97u8,110u8,121u8,0u8,0u8,0u8,14u8,99u8,114u8,121u8,112u8,116u8,111u8,95u8, - 97u8,108u8,103u8,101u8,98u8,114u8,97u8,0u8,0u8,0u8,12u8,115u8,116u8,114u8,105u8,110u8,103u8,95u8,117u8,116u8, - 105u8,108u8,115u8,0u8,0u8,0u8,5u8,100u8,101u8,98u8,117u8,103u8,0u8,0u8,0u8,9u8,100u8,105u8,101u8,109u8, - 95u8,104u8,97u8,115u8,104u8,0u8,0u8,0u8,7u8,101u8,100u8,50u8,53u8,53u8,49u8,57u8,0u8,0u8,0u8,13u8, - 102u8,105u8,120u8,101u8,100u8,95u8,112u8,111u8,105u8,110u8,116u8,54u8,52u8,0u8,0u8,0u8,7u8,109u8,97u8,116u8, - 104u8,49u8,50u8,56u8,0u8,0u8,0u8,6u8,109u8,97u8,116u8,104u8,54u8,52u8,0u8,0u8,0u8,10u8,109u8,97u8, - 116u8,104u8,95u8,102u8,105u8,120u8,101u8,100u8,0u8,0u8,0u8,12u8,109u8,97u8,116u8,104u8,95u8,102u8,105u8,120u8, - 101u8,100u8,54u8,52u8,0u8,0u8,0u8,13u8,109u8,117u8,108u8,116u8,105u8,95u8,101u8,100u8,50u8,53u8,53u8,49u8, - 57u8,0u8,0u8,0u8,10u8,115u8,105u8,109u8,112u8,108u8,101u8,95u8,109u8,97u8,112u8,0u8,0u8,0u8,8u8,112u8, - 111u8,111u8,108u8,95u8,117u8,54u8,52u8,0u8,0u8,0u8,16u8,112u8,111u8,111u8,108u8,95u8,117u8,54u8,52u8,95u8, - 117u8,110u8,98u8,111u8,117u8,110u8,100u8,0u8,0u8,0u8,12u8,114u8,105u8,115u8,116u8,114u8,101u8,116u8,116u8,111u8, - 50u8,53u8,53u8,0u8,0u8,0u8,9u8,115u8,101u8,99u8,112u8,50u8,53u8,54u8,107u8,49u8,0u8,0u8,0u8,11u8, - 115u8,109u8,97u8,114u8,116u8,95u8,116u8,97u8,98u8,108u8,101u8,0u8,0u8,0u8,12u8,115u8,109u8,97u8,114u8,116u8, - 95u8,118u8,101u8,99u8,116u8,111u8,114u8,0u8,0u8,0u8,1u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8, - 0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8, - 0u8,0u8,1u8,10u8,77u8,111u8,118u8,101u8,83u8,116u8,100u8,108u8,105u8,98u8,0u8, + 173u8,55u8,189u8,84u8,107u8,94u8,254u8,129u8,89u8,125u8,0u8,165u8,75u8,106u8,135u8,242u8,0u8,0u8,0u8,30u8, + 13u8,97u8,108u8,108u8,95u8,121u8,111u8,117u8,114u8,95u8,98u8,97u8,115u8,101u8,0u8,0u8,0u8,16u8,98u8,108u8, + 115u8,49u8,50u8,51u8,56u8,49u8,95u8,97u8,108u8,103u8,101u8,98u8,114u8,97u8,0u8,0u8,0u8,9u8,116u8,121u8, + 112u8,101u8,95u8,105u8,110u8,102u8,111u8,0u8,0u8,0u8,8u8,102u8,114u8,111u8,109u8,95u8,98u8,99u8,115u8,0u8, + 0u8,0u8,3u8,97u8,110u8,121u8,0u8,0u8,0u8,5u8,116u8,97u8,98u8,108u8,101u8,0u8,0u8,0u8,17u8,116u8, + 97u8,98u8,108u8,101u8,95u8,119u8,105u8,116u8,104u8,95u8,108u8,101u8,110u8,103u8,116u8,104u8,0u8,0u8,0u8,10u8, + 98u8,105u8,103u8,95u8,118u8,101u8,99u8,116u8,111u8,114u8,0u8,0u8,0u8,8u8,98u8,108u8,115u8,49u8,50u8,51u8, + 56u8,49u8,0u8,0u8,0u8,10u8,99u8,97u8,112u8,97u8,98u8,105u8,108u8,105u8,116u8,121u8,0u8,0u8,0u8,10u8, + 99u8,111u8,109u8,112u8,97u8,114u8,97u8,116u8,111u8,114u8,0u8,0u8,0u8,12u8,99u8,111u8,112u8,121u8,97u8,98u8, + 108u8,101u8,95u8,97u8,110u8,121u8,0u8,0u8,0u8,14u8,99u8,114u8,121u8,112u8,116u8,111u8,95u8,97u8,108u8,103u8, + 101u8,98u8,114u8,97u8,0u8,0u8,0u8,12u8,115u8,116u8,114u8,105u8,110u8,103u8,95u8,117u8,116u8,105u8,108u8,115u8, + 0u8,0u8,0u8,5u8,100u8,101u8,98u8,117u8,103u8,0u8,0u8,0u8,9u8,100u8,105u8,101u8,109u8,95u8,104u8,97u8, + 115u8,104u8,0u8,0u8,0u8,7u8,101u8,100u8,50u8,53u8,53u8,49u8,57u8,0u8,0u8,0u8,13u8,102u8,105u8,120u8, + 101u8,100u8,95u8,112u8,111u8,105u8,110u8,116u8,54u8,52u8,0u8,0u8,0u8,7u8,109u8,97u8,116u8,104u8,49u8,50u8, + 56u8,0u8,0u8,0u8,6u8,109u8,97u8,116u8,104u8,54u8,52u8,0u8,0u8,0u8,10u8,109u8,97u8,116u8,104u8,95u8, + 102u8,105u8,120u8,101u8,100u8,0u8,0u8,0u8,12u8,109u8,97u8,116u8,104u8,95u8,102u8,105u8,120u8,101u8,100u8,54u8, + 52u8,0u8,0u8,0u8,13u8,109u8,117u8,108u8,116u8,105u8,95u8,101u8,100u8,50u8,53u8,53u8,49u8,57u8,0u8,0u8, + 0u8,10u8,115u8,105u8,109u8,112u8,108u8,101u8,95u8,109u8,97u8,112u8,0u8,0u8,0u8,8u8,112u8,111u8,111u8,108u8, + 95u8,117u8,54u8,52u8,0u8,0u8,0u8,16u8,112u8,111u8,111u8,108u8,95u8,117u8,54u8,52u8,95u8,117u8,110u8,98u8, + 111u8,117u8,110u8,100u8,0u8,0u8,0u8,12u8,114u8,105u8,115u8,116u8,114u8,101u8,116u8,116u8,111u8,50u8,53u8,53u8, + 0u8,0u8,0u8,9u8,115u8,101u8,99u8,112u8,50u8,53u8,54u8,107u8,49u8,0u8,0u8,0u8,11u8,115u8,109u8,97u8, + 114u8,116u8,95u8,116u8,97u8,98u8,108u8,101u8,0u8,0u8,0u8,12u8,115u8,109u8,97u8,114u8,116u8,95u8,118u8,101u8, + 99u8,116u8,111u8,114u8,0u8,0u8,0u8,1u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8, + 0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,0u8,1u8, + 10u8,77u8,111u8,118u8,101u8,83u8,116u8,100u8,108u8,105u8,98u8,0u8, ]; - code::publish_package_txn(&framework_signer, chunk1, code) + code::publish_package_txn(&framework_signer, chunk1, code); + version::upgrade_set_git(&framework_signer, x"bafac94d6edd39d972729db21156d47758eb8969") } } diff --git a/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/script.mv b/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/script.mv index e83eb6249..ab87a5f21 100644 Binary files a/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/script.mv and b/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/script.mv differ diff --git a/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/script_sha3 b/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/script_sha3 index 807d36a22..6ba76d66d 100644 --- a/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/script_sha3 +++ b/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/script_sha3 @@ -1 +1 @@ -b1c3129335c2a7de9e3a66c6ad5e1e701a40b50002e018e6118ab2d3261d0ada \ No newline at end of file +247fccfa7bd74a69a1cfd5b885a5c1ef22934768c4e925ea92c75af6277defdc \ No newline at end of file diff --git a/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/sources/1-move-stdlib.move b/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/sources/1-move-stdlib.move index ddf7fa850..117699efd 100644 --- a/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/sources/1-move-stdlib.move +++ b/smoke-tests/tests/fixtures/upgrade_single_step/1-move-stdlib/sources/1-move-stdlib.move @@ -1,7 +1,7 @@ // Upgrade proposal for package `MoveStdlib` -// Framework commit hash: 5b1067cb80b8bb3e5d3e3394e915815a03586cac -// Builder commit hash: 5b1067cb80b8bb3e5d3e3394e915815a03586cac +// Framework commit hash: bafac94d6edd39d972729db21156d47758eb8969 +// Builder commit hash: bafac94d6edd39d972729db21156d47758eb8969 // Next step script hash: @@ -11,6 +11,8 @@ script { use diem_framework::diem_governance; use diem_framework::code; + use diem_framework::version; + fun main(proposal_id: u64){ let framework_signer = diem_governance::resolve_multi_step_proposal( proposal_id, @@ -645,6 +647,7 @@ script { 0u8,0u8,0u8,8u8,102u8,101u8,97u8,116u8,117u8,114u8,101u8,115u8,0u8,0u8,0u8,6u8,111u8,112u8,116u8,105u8, 111u8,110u8,0u8,0u8,0u8,6u8,115u8,116u8,114u8,105u8,110u8,103u8,0u8,0u8,0u8,0u8,0u8, ]; - code::publish_package_txn(&framework_signer, chunk1, code) + code::publish_package_txn(&framework_signer, chunk1, code); + version::upgrade_set_git(&framework_signer, x"bafac94d6edd39d972729db21156d47758eb8969") } }