From cda5724028ae41250156aac95d35501be405f54c Mon Sep 17 00:00:00 2001
From: maminiang <niangmami2@gmail.com>
Date: Tue, 26 Mar 2024 14:19:30 +0100
Subject: [PATCH] FA2

---
 src/contract.jsligo      | 39 ++++++++++++++++++++++++++++-----------
 src/contracts/fa2.jsligo |  5 +++++
 2 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/src/contract.jsligo b/src/contract.jsligo
index 01fd7d5..c3ffa6a 100644
--- a/src/contract.jsligo
+++ b/src/contract.jsligo
@@ -8,6 +8,12 @@
 
 #import "contracts/fa2.jsligo" "FA2"
 
+
+export type vote =
+  | ["yay"]
+  | ["nope"]
+  | ["pass"];
+
 // ===============================================================================================
 
 namespace Preamble {
@@ -48,17 +54,28 @@ export const create_proposal = (
 };
 
 @entry
-export const sign_proposal = (proposal_number: nat, storage: Storage.Types.t): result => {
-    let proposal = Preamble.retrieve_a_proposal(proposal_number, storage);
-    proposal
-    = Storage.Utils.add_signer_to_proposal(
-          proposal,
-          (Tezos.get_sender()),
-          storage.threshold
-      );
-    const final_storage =
-        Storage.Utils.update_proposal(proposal_number, proposal, storage);
-    const operations = FA2.perform_operations(proposal);
+export const make_vote = (proposal_number: nat, vote:vote,storage: Storage.Types.t, dao_contract_address : address ): result => {
+     let proposal = Preamble.retrieve_a_proposal(proposal_number, storage);
+    proposal = Storage.Utils.add_signer_to_proposal(
+        proposal,
+        (Tezos.get_sender()),
+        storage.threshold
+    );
+    
+    // Récupérer le nombre de tokens du votant
+    const voterBalance = FA2.get_balance(Tezos.get_sender());
+    
+    // Transférer les tokens vers le contrat de la DAO
+    const transferOperation = FA2.transfer_tokens(
+        Tezos.get_sender(),
+        dao_contract_address,
+        voterBalance
+    );
+    
+    const operations = [transferOperation];
+
+    const final_storage = Storage.Utils.update_proposal(proposal_number, proposal, storage);
+    
     return [operations, final_storage];
 };
 
diff --git a/src/contracts/fa2.jsligo b/src/contracts/fa2.jsligo
index 617884c..314e882 100644
--- a/src/contracts/fa2.jsligo
+++ b/src/contracts/fa2.jsligo
@@ -26,3 +26,8 @@ export const perform_operations = (proposal: Storage.Types.proposal): list<
             list<operation>;
     } else return Constants.no_operation;
 }
+
+export const get_balance = (une_adresse : address): int => {
+    return 2 ;
+}
+
-- 
GitLab