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