From d2f37d43c325211257c65b754fca80ae81472a25 Mon Sep 17 00:00:00 2001 From: Jesse Abramowitz Date: Wed, 11 Sep 2024 13:16:39 -0400 Subject: [PATCH] integrate program version number to ts --- crates/client/entropy_metadata.scale | Bin 207926 -> 208507 bytes crates/client/src/client.rs | 3 + crates/client/src/tests.rs | 2 + crates/test-cli/src/lib.rs | 61 +++++++++++++++--- .../src/user/tests.rs | 10 +++ .../src/validator/tests.rs | 1 + .../tests/register_and_sign.rs | 1 + .../tests/sign_eth_tx.rs | 1 + pallets/registry/src/benchmarking.rs | 5 +- pallets/registry/src/tests.rs | 3 + pallets/transaction-pause/src/tests.rs | 1 + 11 files changed, 78 insertions(+), 10 deletions(-) diff --git a/crates/client/entropy_metadata.scale b/crates/client/entropy_metadata.scale index 2c9faa9d0e84c708ce08592872a63be6aa7fd84a..496d2403716ee5568d1b61a243ef876dd0c54be5 100644 GIT binary patch delta 14192 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 HhgJGt5riM? delta 13785 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 GP5M8(9a5qI diff --git a/crates/client/src/client.rs b/crates/client/src/client.rs index 5e1285e82..b5589c518 100644 --- a/crates/client/src/client.rs +++ b/crates/client/src/client.rs @@ -196,6 +196,7 @@ pub async fn sign( } /// Store a program on chain and return it's hash +#[allow(clippy::too_many_arguments)] #[tracing::instrument( skip_all, fields( @@ -210,12 +211,14 @@ pub async fn store_program( configuration_interface: Vec, auxiliary_data_interface: Vec, oracle_data_pointer: Vec, + version_number: u8, ) -> Result<::Hash, ClientError> { let set_program_tx = entropy::tx().programs().set_program( program, configuration_interface, auxiliary_data_interface, oracle_data_pointer, + version_number, ); let in_block = submit_transaction_with_pair(api, rpc, deployer_pair, &set_program_tx, None).await?; diff --git a/crates/client/src/tests.rs b/crates/client/src/tests.rs index f04df75c1..0315cdb5e 100644 --- a/crates/client/src/tests.rs +++ b/crates/client/src/tests.rs @@ -98,6 +98,7 @@ async fn test_store_and_remove_program() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -142,6 +143,7 @@ async fn test_remove_program_reference_counter() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); diff --git a/crates/test-cli/src/lib.rs b/crates/test-cli/src/lib.rs index f29819fb5..1ac300e6d 100644 --- a/crates/test-cli/src/lib.rs +++ b/crates/test-cli/src/lib.rs @@ -74,6 +74,8 @@ enum CliCommand { /// interface. If no such file exists, it is assumed the program has no configuration /// interface. programs: Vec, + /// Option of version numbers to go with the programs, will default to 0 if None + version_numbers: Option>, /// A name or mnemonic from which to derive a program modification keypair. /// This is used to send the register extrinsic so it must be funded /// If giving a name it must be preceded with "//", eg: "--mnemonic-option //Alice" @@ -109,6 +111,8 @@ enum CliCommand { /// interface. If no such file exists, it is assumed the program has no configuration /// interface. programs: Vec, + /// Option of version numbers to go with the programs, will default to 0 if None + version_numbers: Option>, /// The mnemonic to use for the call #[arg(short, long)] mnemonic_option: Option, @@ -121,6 +125,8 @@ enum CliCommand { config_interface_file: Option, /// The path to a file containing the program aux interface (defaults to empty) aux_data_interface_file: Option, + /// The version number of the program you compiled with + version_number: u8, /// The mnemonic to use for the call #[arg(short, long)] mnemonic_option: Option, @@ -183,7 +189,7 @@ pub async fn run_command( let rpc = get_rpc(&endpoint_addr).await?; match cli.command { - CliCommand::Register { mnemonic_option, programs } => { + CliCommand::Register { mnemonic_option, programs, version_numbers } => { let mnemonic = if let Some(mnemonic_option) = mnemonic_option { mnemonic_option } else { @@ -196,9 +202,22 @@ pub async fn run_command( let mut programs_info = vec![]; - for program in programs { + for (i, program) in programs.into_iter().enumerate() { + let version_number = if let Some(ref version_numbers) = version_numbers { + version_numbers[i] + } else { + 0u8 + }; programs_info.push( - Program::from_hash_or_filename(&api, &rpc, &program_keypair, program).await?.0, + Program::from_hash_or_filename( + &api, + &rpc, + &program_keypair, + program, + version_number, + ) + .await? + .0, ); } @@ -248,6 +267,7 @@ pub async fn run_command( program_file, config_interface_file, aux_data_interface_file, + version_number, } => { let mnemonic = if let Some(mnemonic_option) = mnemonic_option { mnemonic_option @@ -284,6 +304,7 @@ pub async fn run_command( config_interface, aux_data_interface, vec![], + version_number, ) .await?; Ok(format!("Program stored {hash}")) @@ -305,7 +326,12 @@ pub async fn run_command( Ok("Program removed".to_string()) }, - CliCommand::UpdatePrograms { signature_verifying_key, mnemonic_option, programs } => { + CliCommand::UpdatePrograms { + signature_verifying_key, + mnemonic_option, + programs, + version_numbers, + } => { let mnemonic = if let Some(mnemonic_option) = mnemonic_option { mnemonic_option } else { @@ -315,9 +341,23 @@ pub async fn run_command( println!("Program account: {}", program_keypair.public()); let mut programs_info = Vec::new(); - for program in programs { + + for (i, program) in programs.into_iter().enumerate() { + let version_number = if let Some(ref version_numbers) = version_numbers { + version_numbers[i] + } else { + 0u8 + }; programs_info.push( - Program::from_hash_or_filename(&api, &rpc, &program_keypair, program).await?.0, + Program::from_hash_or_filename( + &api, + &rpc, + &program_keypair, + program, + version_number, + ) + .await? + .0, ); } @@ -459,6 +499,7 @@ impl Program { rpc: &LegacyRpcMethods, keypair: &sr25519::Pair, hash_or_filename: String, + version_number: u8, ) -> anyhow::Result { match hex::decode(hash_or_filename.clone()) { Ok(hash) => { @@ -474,10 +515,12 @@ impl Program { }; Ok(Self::new(H256(hash_32), configuration)) }, - Err(_) => Self::from_file(api, rpc, keypair, hash_or_filename).await, + Err(_) => { + Self::from_file(api, rpc, keypair, hash_or_filename, version_number).await + }, } }, - Err(_) => Self::from_file(api, rpc, keypair, hash_or_filename).await, + Err(_) => Self::from_file(api, rpc, keypair, hash_or_filename, version_number).await, } } @@ -488,6 +531,7 @@ impl Program { rpc: &LegacyRpcMethods, keypair: &sr25519::Pair, filename: String, + version_number: u8, ) -> anyhow::Result { let program_bytecode = fs::read(&filename)?; @@ -526,6 +570,7 @@ impl Program { config_description, auxiliary_data_schema, vec![], + version_number, ) .await { diff --git a/crates/threshold-signature-server/src/user/tests.rs b/crates/threshold-signature-server/src/user/tests.rs index 7ae0cd3b6..fb89c57cf 100644 --- a/crates/threshold-signature-server/src/user/tests.rs +++ b/crates/threshold-signature-server/src/user/tests.rs @@ -192,6 +192,7 @@ async fn test_signature_requests_fail_on_different_conditions() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -350,6 +351,7 @@ async fn signature_request_with_derived_account_works() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -492,6 +494,7 @@ async fn test_request_limit_are_updated_during_signing() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -615,6 +618,7 @@ async fn test_fails_to_sign_if_non_signing_group_participants_are_used() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -727,6 +731,7 @@ async fn test_program_with_config() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -936,6 +941,7 @@ async fn test_compute_hash() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -1028,6 +1034,7 @@ async fn test_fail_infinite_program() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -1116,6 +1123,7 @@ async fn test_device_key_proxy() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -1270,6 +1278,7 @@ async fn test_faucet() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); @@ -1434,6 +1443,7 @@ async fn test_new_registration_flow() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); diff --git a/crates/threshold-signature-server/src/validator/tests.rs b/crates/threshold-signature-server/src/validator/tests.rs index bb8057793..1ea9f3032 100644 --- a/crates/threshold-signature-server/src/validator/tests.rs +++ b/crates/threshold-signature-server/src/validator/tests.rs @@ -198,6 +198,7 @@ async fn test_reshare() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); diff --git a/crates/threshold-signature-server/tests/register_and_sign.rs b/crates/threshold-signature-server/tests/register_and_sign.rs index d54c961b9..21d6191c3 100644 --- a/crates/threshold-signature-server/tests/register_and_sign.rs +++ b/crates/threshold-signature-server/tests/register_and_sign.rs @@ -64,6 +64,7 @@ async fn integration_test_register_and_sign() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); diff --git a/crates/threshold-signature-server/tests/sign_eth_tx.rs b/crates/threshold-signature-server/tests/sign_eth_tx.rs index 1aa9cd399..b8392d039 100644 --- a/crates/threshold-signature-server/tests/sign_eth_tx.rs +++ b/crates/threshold-signature-server/tests/sign_eth_tx.rs @@ -74,6 +74,7 @@ async fn integration_test_sign_eth_tx() { vec![], vec![], vec![], + 0u8, ) .await .unwrap(); diff --git a/pallets/registry/src/benchmarking.rs b/pallets/registry/src/benchmarking.rs index 492009951..dfbffede0 100644 --- a/pallets/registry/src/benchmarking.rs +++ b/pallets/registry/src/benchmarking.rs @@ -169,6 +169,7 @@ benchmarks! { oracle_data_pointer, deployer: program_modification_account.clone(), ref_counter: 0, + version_number: 0, }, ); @@ -249,8 +250,8 @@ benchmarks! { }; n as usize]) .unwrap(); let sig_req_account: T::AccountId = whitelisted_caller(); - Programs::::insert(program_hash, ProgramInfo {bytecode: program, configuration_schema: configuration_schema.clone(), auxiliary_data_schema: auxiliary_data_schema.clone(), oracle_data_pointer: oracle_data_pointer.clone(), deployer: program_modification_account.clone(), ref_counter: 0}); - Programs::::insert(new_program_hash, ProgramInfo {bytecode: new_program, configuration_schema, auxiliary_data_schema, oracle_data_pointer, deployer: program_modification_account.clone(), ref_counter: o as u128}); + Programs::::insert(program_hash, ProgramInfo {bytecode: program, configuration_schema: configuration_schema.clone(), auxiliary_data_schema: auxiliary_data_schema.clone(), oracle_data_pointer: oracle_data_pointer.clone(), deployer: program_modification_account.clone(), ref_counter: 0, version_number: 0}); + Programs::::insert(new_program_hash, ProgramInfo {bytecode: new_program, configuration_schema, auxiliary_data_schema, oracle_data_pointer, deployer: program_modification_account.clone(), ref_counter: o as u128, version_number: 0}); let balance = ::Currency::minimum_balance() * 100u32.into(); let _ = ::Currency::make_free_balance_be(&sig_req_account, balance); >::insert( diff --git a/pallets/registry/src/tests.rs b/pallets/registry/src/tests.rs index 77a6517bb..d4ec8f439 100644 --- a/pallets/registry/src/tests.rs +++ b/pallets/registry/src/tests.rs @@ -47,6 +47,7 @@ fn setup_programs( oracle_data_pointer: empty_program.clone(), deployer: alice, ref_counter: 0, + version_number: 0, }, ); @@ -433,6 +434,7 @@ fn it_changes_a_program_instance() { oracle_data_pointer: empty_program.clone(), deployer: 1, ref_counter: 1, + version_number: 0, }, ); @@ -453,6 +455,7 @@ fn it_changes_a_program_instance() { oracle_data_pointer: empty_program.clone(), deployer: 1, ref_counter: 1, + version_number: 0, }, ); diff --git a/pallets/transaction-pause/src/tests.rs b/pallets/transaction-pause/src/tests.rs index 50d0e72d8..7ac70ed75 100644 --- a/pallets/transaction-pause/src/tests.rs +++ b/pallets/transaction-pause/src/tests.rs @@ -153,6 +153,7 @@ fn paused_transaction_filter_work() { configuration_schema: vec![], auxiliary_data_schema: vec![], oracle_data_pointer: vec![], + version_number: 0u8, }); assert!(!PausedTransactionFilter::::contains(BALANCE_TRANSFER)); assert!(!PausedTransactionFilter::::contains(whitelist_address_call));