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 {