diff --git a/contracts/AssociationRegistry.jsligo b/contracts/AssociationRegistry.jsligo
index 790aa9cd7a6c727e70e1b4e03156094f4622a300..2ad61f48a7809659fd552e2fd41c543b758de513 100644
--- a/contracts/AssociationRegistry.jsligo
+++ b/contracts/AssociationRegistry.jsligo
@@ -1,4 +1,3 @@
-
type coordinate = {
x: int;
y: int;
@@ -28,8 +27,8 @@ const registrationFeeInitial: tez = 10 as tez;
//Register a new DAO
@entry
function registerAssociation(newAssociation: association, storage: storage): return_ {
- const existingAssociation = Big_map.find_opt(newAssociation.name, storage);
- if (Option.is_some(existingAssociation)) {
+ const existingAssociation = Big_map.mem(newAssociation.name, storage);
+ if (existingAssociation) {
failwith("Association already registered");
}
const updatedStorage: storage = Big_map.add(newAssociation.name, {
@@ -39,38 +38,47 @@ function registerAssociation(newAssociation: association, storage: storage): ret
// Within the registerAssociation function
const noOperations : list<operation> = list([]);
-
-
-
const result: return_ = [noOperations, updatedStorage];
return result;
}
+
+
//Change Admin
@entry
-function changeAdmin(associationName, newAdmin, storage) {
- const associationOpt = Big_map.find_opt(associationName, storage);
+function changeAdmin(associationName :string, newAdmin : address, stor: storage) {
+ const associationOpt = Big_map.find_opt(associationName, stor);
if (Option.is_none(associationOpt)) {
- failwith("Unknown association cannot change admin");
- }
-
- const association = Option.unopt(associationOpt, () => failwith("Failed to get association"));
+ failwith("Unknown association cannot change admin");}
+ const association = Option.unopt_with_error(associationOpt,"Failed to get association");
//todo
- if (Some(Tezos.get_sender()) != association.admin) {
+ const senderAddress = Tezos.get_sender();
+ if (!Option.is_some(association.admin) || senderAddress != Option.unopt(association.admin)) {
failwith("Only the current admin can change the admin");
}
-
const updatedAssociation = {
...association,
admin: Some(newAdmin)
+ }
+ const updatedStorage = Big_map.update(associationName, Some(updatedAssociation), stor);
+
+ return [list([],updatedStorage)]
};
+/*
+@entry
+const destroy = (planetName: string, stor: storage): return_ => {
+ const existingPlanet = Big_map.find_opt(planetName, stor);
+ const planet = Option.unopt_with_error(existingPlanet, "Unknown planet cannot be destroyed");
+ const senderAddress = Tezos.get_sender();
+ if (!Option.is_some(planet.lord) || !Tezos.address_equals(senderAddress, Option.unopt(planet.lord))) {
+ failwith("Only the lord of the planet can destroy it");
+ }
+ const updatedStorage = Big_map.remove(planetName, stor);
- const updatedStorage = Big_map.update(associationName, Some(updatedAssociation), storage);
+ return [list([]), updatedStorage];
+};
+*/
- const noOperations: list<operation> = [];
- const result: return_ = [noOperations, updatedStorage];
- return result;
-}
//List associations
@view