From cc1075b29c4aafa746530f4946fb528eb2817c7d Mon Sep 17 00:00:00 2001 From: Yogesh <155965081+supra-yoga@users.noreply.github.com> Date: Thu, 17 Oct 2024 22:39:51 +0530 Subject: [PATCH] fix: increment sequence number of owner after creating multisig acc (#111) --- .../supra-framework/sources/genesis.move | 39 ++++++++++++------- aptos-move/vm-genesis/src/lib.rs | 4 +- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/aptos-move/framework/supra-framework/sources/genesis.move b/aptos-move/framework/supra-framework/sources/genesis.move index 879e8c921d7f8..0b42c26955e93 100644 --- a/aptos-move/framework/supra-framework/sources/genesis.move +++ b/aptos-move/framework/supra-framework/sources/genesis.move @@ -257,36 +257,47 @@ module supra_framework::genesis { } - fun create_multiple_multisig_accounts_with_schema(supra_framework: &signer, - owner: address, additional_owners: vector
,num_signatures_required:u64,metadata_keys:vector,metadata_values:vector>, - timeout_duration:u64, balance:u64, num_of_accounts: u32): vector
{ - + fun create_multiple_multisig_accounts_with_schema( + supra_framework: &signer, + owner: address, + additional_owners: vector
, + num_signatures_required:u64, + metadata_keys:vector, + metadata_values:vector>, + timeout_duration:u64, + balance:u64, + num_of_accounts: u32 + ): vector
{ let counter = 0; let result = vector::empty(); while (counter < num_of_accounts) { let account_addr = create_multisig_account_with_balance(supra_framework, owner, additional_owners, num_signatures_required,metadata_keys,metadata_values,timeout_duration,balance); vector::push_back(&mut result,account_addr); - account::increment_sequence_number(owner); counter = counter + 1; }; result } - fun create_multisig_account_with_balance(supra_framework: &signer, owner: address, additional_owners: vector
, - num_signatures_required:u64, metadata_keys: vector, - metadata_values: vector>, timeout_duration: u64, balance:u64 ) : address { - + fun create_multisig_account_with_balance( + supra_framework: &signer, + owner: address, + additional_owners: vector
, + num_signatures_required:u64, + metadata_keys: vector, + metadata_values: vector>, + timeout_duration: u64, + balance:u64, + ): address { assert!(account::exists_at(owner),error::invalid_argument(EACCOUNT_DOES_NOT_EXIST)); assert!(vector::all(&additional_owners,|ao_addr|{account::exists_at(*ao_addr)}),error::invalid_argument(EACCOUNT_DOES_NOT_EXIST)); let addr = multisig_account::get_next_multisig_account_address(owner); let owner_signer = create_signer(owner); multisig_account::create_with_owners(&owner_signer,additional_owners,num_signatures_required,metadata_keys,metadata_values,timeout_duration); - supra_coin::mint(supra_framework,addr,balance); - addr - - } - + supra_coin::mint(supra_framework,addr,balance); + account::increment_sequence_number(owner); + addr + } fun create_employee_validators( employee_vesting_start: u64, diff --git a/aptos-move/vm-genesis/src/lib.rs b/aptos-move/vm-genesis/src/lib.rs index 65bfd17d477bd..abe567af0d969 100644 --- a/aptos-move/vm-genesis/src/lib.rs +++ b/aptos-move/vm-genesis/src/lib.rs @@ -321,12 +321,12 @@ pub fn encode_genesis_change_set_for_testnet( create_accounts(&mut session, accounts); - create_multisig_accounts_with_balance(&mut session, multisig_account); - if let Some(owner_group) = owner_group { create_multiple_multisig_accounts_with_schema(&mut session, owner_group); } + create_multisig_accounts_with_balance(&mut session, multisig_account); + if validators.len() > 0 { create_and_initialize_validators(&mut session, validators); } else {