Skip to content
Snippets Groups Projects
Commit 0065edd1 authored by Joe El hajj's avatar Joe El hajj
Browse files

Update AssociationRegistry.jsligo

parent c61ea560
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,7 @@ type coordinate = { ...@@ -3,7 +3,7 @@ type coordinate = {
x: int; x: int;
y: int; y: int;
z: int; z: int;
}; }
type associationStatus = type associationStatus =
| ["Active"] | ["Active"]
...@@ -25,7 +25,7 @@ type return_ = [list<operation>, storage]; ...@@ -25,7 +25,7 @@ type return_ = [list<operation>, storage];
const registrationFeeInitial: tez = 10 as tez; const registrationFeeInitial: tez = 10 as tez;
//Register a new DAO
@entry @entry
function registerAssociation(newAssociation: association, storage: storage): return_ { function registerAssociation(newAssociation: association, storage: storage): return_ {
const existingAssociation = Big_map.find_opt(newAssociation.name, storage); const existingAssociation = Big_map.find_opt(newAssociation.name, storage);
...@@ -37,21 +37,26 @@ function registerAssociation(newAssociation: association, storage: storage): ret ...@@ -37,21 +37,26 @@ function registerAssociation(newAssociation: association, storage: storage): ret
registrationFee: registrationFeeInitial registrationFee: registrationFeeInitial
}, storage); }, storage);
const noOperations: list<operation> = []; // Within the registerAssociation function
const noOperations : list<operation> = list([]);
const result: return_ = [noOperations, updatedStorage]; const result: return_ = [noOperations, updatedStorage];
return result; return result;
} }
//Change Admin
@entry @entry
function changeAdmin(associationName: string, newAdmin: address, storage: storage): return_ { function changeAdmin(associationName, newAdmin, storage) {
const associationOpt = Big_map.find_opt(associationName, storage); const associationOpt = Big_map.find_opt(associationName, storage);
if (Option.is_none(associationOpt)) { if (Option.is_none(associationOpt)) {
failwith("Unknown association cannot change admin"); failwith("Unknown association cannot change admin");
} }
let association = Option.get(associationOpt);
if (Option.is_none(association.admin) || Tezos.sender != Option.get(association.admin)) { const association = Option.unopt(associationOpt, () => failwith("Failed to get association"));
//todo
if (Some(Tezos.get_sender()) != association.admin) {
failwith("Only the current admin can change the admin"); failwith("Only the current admin can change the admin");
} }
...@@ -59,14 +64,15 @@ function changeAdmin(associationName: string, newAdmin: address, storage: storag ...@@ -59,14 +64,15 @@ function changeAdmin(associationName: string, newAdmin: address, storage: storag
...association, ...association,
admin: Some(newAdmin) admin: Some(newAdmin)
}; };
const updatedStorage: storage = Big_map.update(associationName, Some(updatedAssociation), storage);
const updatedStorage = Big_map.update(associationName, Some(updatedAssociation), storage);
const noOperations: list<operation> = []; const noOperations: list<operation> = [];
const result: return_ = [noOperations, updatedStorage]; const result: return_ = [noOperations, updatedStorage];
return result; return result;
} }
//List associations
@view @view
function getAssociationDetails(associationName: string, storage: storage): option<association> { function getAssociationDetails(associationName: string, storage: storage): option<association> {
return Big_map.find_opt(associationName, storage); return Big_map.find_opt(associationName, storage);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment