From b9f16156c9454b969dff8779ace08becd5a2eab2 Mon Sep 17 00:00:00 2001 From: Ali Eray Date: Wed, 15 Nov 2023 16:21:44 +0300 Subject: [PATCH 1/2] bug fixed --- 3.restricted-mint-multisig/imports/multisig.leo | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/3.restricted-mint-multisig/imports/multisig.leo b/3.restricted-mint-multisig/imports/multisig.leo index 1652050..9cd927a 100644 --- a/3.restricted-mint-multisig/imports/multisig.leo +++ b/3.restricted-mint-multisig/imports/multisig.leo @@ -5,6 +5,9 @@ program multisig.aleo { mapping required_signatures: bool => u64; mapping proposals: Proposal => u64; mapping signers: address => bool; + mapping signed: Signed => bool; + + struct Proposal { program_address: address, @@ -12,6 +15,11 @@ program multisig.aleo { args_hash: field, } + struct Signed { + signer: address, + proposal: Proposal + } + record ticket { owner: address, program_address: address, @@ -41,8 +49,12 @@ program multisig.aleo { finalize sign(caller: address, proposal: Proposal) { assert(Mapping::get(signers, caller)); + Mapping::get(signed, Signed { signer: caller, proposal: proposal }); + let signatures: u64 = Mapping::get_or_use(proposals, proposal, 0u64); Mapping::set(proposals, proposal, signatures + 1u64); + Mapping::set(signed, Signed { signer: caller, proposal: proposal }, true); + } transition add_signer(ticket_: ticket, new_signer: address) { From 14e88ac8078dbe5b5f74ade6b398d0f4909c29f1 Mon Sep 17 00:00:00 2001 From: Ali Eray Date: Wed, 15 Nov 2023 16:27:11 +0300 Subject: [PATCH 2/2] bug fixed --- 3.restricted-mint-multisig/imports/multisig.leo | 2 ++ 1 file changed, 2 insertions(+) diff --git a/3.restricted-mint-multisig/imports/multisig.leo b/3.restricted-mint-multisig/imports/multisig.leo index 9cd927a..2971080 100644 --- a/3.restricted-mint-multisig/imports/multisig.leo +++ b/3.restricted-mint-multisig/imports/multisig.leo @@ -52,6 +52,8 @@ program multisig.aleo { Mapping::get(signed, Signed { signer: caller, proposal: proposal }); let signatures: u64 = Mapping::get_or_use(proposals, proposal, 0u64); + let isSigned: Signed = Signed{signer: caller, proposal: proposal}; + assert(!Mapping::get(signed, isSigned)); Mapping::set(proposals, proposal, signatures + 1u64); Mapping::set(signed, Signed { signer: caller, proposal: proposal }, true);