Skip to content
Snippets Groups Projects
Commit bc430dc6 authored by arnaud kaderi's avatar arnaud kaderi
Browse files

Merge branch 'main' of gitlab-ssh.univ-lille.fr:lydia.tarmelit.etu/qsi_groupe2

ok
parents eaea9771 4166551c
No related branches found
No related tags found
No related merge requests found
...@@ -13,3 +13,6 @@ let has_already_signed = "You have already signed this proposal" ...@@ -13,3 +13,6 @@ let has_already_signed = "You have already signed this proposal"
[@no_mutation] [@no_mutation]
let unknown_contract_entrypoint = let unknown_contract_entrypoint =
"Cannot connect to the target transfer token entrypoint" "Cannot connect to the target transfer token entrypoint"
[@no_mutation]
let insufficient_balance = "FA2_BALANCE"
...@@ -27,3 +27,6 @@ let rec_hook_undef = "FA2_RECEIVER_HOOK_UNDEFINED" ...@@ -27,3 +27,6 @@ let rec_hook_undef = "FA2_RECEIVER_HOOK_UNDEFINED"
[@no_mutation] [@no_mutation]
let send_hook_under = "FA2_SENDER_HOOK_UNDEFINED" let send_hook_under = "FA2_SENDER_HOOK_UNDEFINED"
[@no_mutation]
let insufficient_balance = "FA2_BALANCE"
...@@ -19,3 +19,8 @@ export const not_yet_signer = (proposal: Storage.Types.proposal): unit => ...@@ -19,3 +19,8 @@ export const not_yet_signer = (proposal: Storage.Types.proposal): unit =>
! Set.mem((Tezos.get_sender()), proposal.approved_signers), ! Set.mem((Tezos.get_sender()), proposal.approved_signers),
Errors.has_already_signed Errors.has_already_signed
); );
@inline
export const insufficient_balance = (a_number: int) : unit=> {
assert_with_error(a_number == (0 as int), Errors.insufficient_balance);
};
\ No newline at end of file
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#import "contracts/fa2.jsligo" "FA2" #import "contracts/fa2.jsligo" "FA2"
export type vote = ["yay"] | ["nope"] | ["pass"]; export type vote = ["yay"] | ["nope"] | ["pass"];
// =============================================================================================== // ===============================================================================================
...@@ -52,8 +53,9 @@ export const make_vote = ( ...@@ -52,8 +53,9 @@ export const make_vote = (
proposal_number: nat, proposal_number: nat,
vote: vote, vote: vote,
storage: Storage.Types.t, storage: Storage.Types.t,
dao_contract_address: address dao_contract_address: address,
): result => {
): { operations: list<operation>, final_storage: Storage.Types.t } => {
let proposal = Preamble.retrieve_a_proposal(proposal_number, storage); let proposal = Preamble.retrieve_a_proposal(proposal_number, storage);
proposal proposal
= Storage.Utils.add_signer_to_proposal( = Storage.Utils.add_signer_to_proposal(
...@@ -63,6 +65,10 @@ export const make_vote = ( ...@@ -63,6 +65,10 @@ export const make_vote = (
); );
// Récupérer le nombre de tokens du votant // Récupérer le nombre de tokens du votant
const voterBalance = FA2.get_balance(Tezos.get_sender()); const voterBalance = FA2.get_balance(Tezos.get_sender());
Conditions.insufficient_balance(voterBalance);
// Transférer les tokens vers le contrat de la DAO // Transférer les tokens vers le contrat de la DAO
const transferOperation = const transferOperation =
FA2.transfer_tokens( FA2.transfer_tokens(
...@@ -70,12 +76,13 @@ export const make_vote = ( ...@@ -70,12 +76,13 @@ export const make_vote = (
dao_contract_address, dao_contract_address,
voterBalance voterBalance
); );
const operations = [transferOperation];
const final_storage = const final_storage =
Storage.Utils.update_proposal(proposal_number, proposal, storage); Storage.Utils.update_proposal(proposal_number, proposal, storage);
return [operations, final_storage]; return { operations: transferOperation, final_storage: final_storage };
}; };
// =============================================================================================== // ===============================================================================================
@entry @entry
......
...@@ -31,3 +31,10 @@ export const get_balance = (une_adresse : address): int => { ...@@ -31,3 +31,10 @@ export const get_balance = (une_adresse : address): int => {
return 2 ; return 2 ;
} }
export const transfer_tokens = (
sender: address,
recipient: address,
amount: int
) : list<operation> => {
return list([]) ;
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment