tx · G1cQvyASiH1oJeHT6wACYjaG6epz6QvSStuxWnxq5SXQ
3NASTFHC1YtW7GLjJc29iqiECnSnqeTA3Ry: -0.10000000 Waves
2021.05.11 17:42 [1521153] smart account 3NASTFHC1YtW7GLjJc29iqiECnSnqeTA3Ry > SELF 0.00000000 Waves
{
"type": 13,
"id": "G1cQvyASiH1oJeHT6wACYjaG6epz6QvSStuxWnxq5SXQ",
"fee": 10000000,
"feeAssetId": null,
"timestamp": 1620744142364,
"version": 2,
"chainId": 84,
"sender": "3NASTFHC1YtW7GLjJc29iqiECnSnqeTA3Ry",
"senderPublicKey": "3nb9JsU2MgGoFtV4Rfm9aMbNRLr8hM9YJ6heMENC8hon",
"proofs": [
"KUrPP8h563yuShvwCSb284HQA2KyTQpvJUX4WSD9hSHQUWeX7rARhoU759tYHELY6FQb4zgC3TzKeHpUTDFdxrq"
],
"script": "base64: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",
"height": 1521153,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: shQnctf2SZM4v4DR3auKUetjKZcQpvoY6DRj61KUhic
Next: none
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | func a (b) = { |
---|
5 | | - | let c = { |
---|
6 | | - | let d = getInteger(this, b) |
---|
7 | | - | if ($isInstanceOf(d, "Int")) |
---|
| 4 | + | func a (b) = (b == this) |
---|
| 5 | + | |
---|
| 6 | + | |
---|
| 7 | + | func c (d) = { |
---|
| 8 | + | let e = { |
---|
| 9 | + | let f = getInteger(this, d) |
---|
| 10 | + | if ($isInstanceOf(f, "Int")) |
---|
8 | 11 | | then { |
---|
9 | | - | let e = d |
---|
10 | | - | e |
---|
| 12 | + | let g = f |
---|
| 13 | + | g |
---|
11 | 14 | | } |
---|
12 | 15 | | else 0 |
---|
13 | 16 | | } |
---|
14 | | - | c |
---|
| 17 | + | e |
---|
15 | 18 | | } |
---|
16 | 19 | | |
---|
17 | 20 | | |
---|
18 | | - | func f (b) = { |
---|
19 | | - | let c = { |
---|
20 | | - | let d = getString(this, b) |
---|
21 | | - | if ($isInstanceOf(d, "String")) |
---|
| 21 | + | func h () = { |
---|
| 22 | + | let e = { |
---|
| 23 | + | let f = getString(this, "working_group_members") |
---|
| 24 | + | if ($isInstanceOf(f, "String")) |
---|
22 | 25 | | then { |
---|
23 | | - | let e = d |
---|
24 | | - | e |
---|
| 26 | + | let g = f |
---|
| 27 | + | g |
---|
25 | 28 | | } |
---|
26 | 29 | | else "" |
---|
27 | 30 | | } |
---|
28 | | - | c |
---|
| 31 | + | e |
---|
29 | 32 | | } |
---|
30 | 33 | | |
---|
31 | 34 | | |
---|
32 | | - | func g (h) = (h == this) |
---|
| 35 | + | func i (j) = (c((("working_group_member_" + toString(j)) + "_weight")) > 0) |
---|
33 | 36 | | |
---|
34 | 37 | | |
---|
35 | | - | func i () = { |
---|
36 | | - | let c = { |
---|
37 | | - | let d = getString(this, "working_group_members") |
---|
38 | | - | if ($isInstanceOf(d, "String")) |
---|
39 | | - | then { |
---|
40 | | - | let e = d |
---|
41 | | - | e |
---|
42 | | - | } |
---|
43 | | - | else "" |
---|
44 | | - | } |
---|
45 | | - | c |
---|
| 38 | + | func k (j) = (c((("working_group_member_" + toString(j)) + "_weight")) > 0) |
---|
| 39 | + | |
---|
| 40 | + | |
---|
| 41 | + | func l (m) = if ((m == "rejected")) |
---|
| 42 | + | then "rejected" |
---|
| 43 | + | else if ((m == "approved")) |
---|
| 44 | + | then "approved" |
---|
| 45 | + | else throw("you need to vote with 'approved' or 'rejected' value") |
---|
| 46 | + | |
---|
| 47 | + | |
---|
| 48 | + | @Callable(n) |
---|
| 49 | + | func votesOnMember (o) = { |
---|
| 50 | + | let p = (("dao_member_" + o) + "_voting_state") |
---|
| 51 | + | let q = (c(p) + 1) |
---|
| 52 | + | let r = toString(n.caller) |
---|
| 53 | + | if (if (!(i(n.caller))) |
---|
| 54 | + | then (c(((r + "_voted_working_group_members_for_") + o)) != 1) |
---|
| 55 | + | else false) |
---|
| 56 | + | then WriteSet([DataEntry(p, q), DataEntry(((r + "_voted_working_group_members_for_") + o), 1)]) |
---|
| 57 | + | else throw("You have no rights or you have already voted") |
---|
46 | 58 | | } |
---|
47 | 59 | | |
---|
48 | 60 | | |
---|
49 | | - | func j () = { |
---|
50 | | - | let c = { |
---|
51 | | - | let d = getString(this, "dao_members") |
---|
52 | | - | if ($isInstanceOf(d, "String")) |
---|
53 | | - | then { |
---|
54 | | - | let e = d |
---|
55 | | - | e |
---|
56 | | - | } |
---|
57 | | - | else "" |
---|
58 | | - | } |
---|
59 | | - | c |
---|
| 61 | + | |
---|
| 62 | + | @Callable(n) |
---|
| 63 | + | func proposeMember (o) = { |
---|
| 64 | + | let r = toString(n.caller) |
---|
| 65 | + | if ((c(("dao_member_" + o)) == 1)) |
---|
| 66 | + | then throw("This user already exists") |
---|
| 67 | + | else WriteSet([DataEntry(("dao_member_" + o), "proposed")]) |
---|
60 | 68 | | } |
---|
61 | 69 | | |
---|
62 | 70 | | |
---|
63 | | - | func k (l) = (a((("working_group_member_" + toString(l)) + "_weight")) > 0) |
---|
64 | | - | |
---|
65 | | - | |
---|
66 | | - | func m (n) = (a((("dao_member_" + toString(n.caller)) + "_weight")) > 0) |
---|
67 | | - | |
---|
68 | 71 | | |
---|
69 | 72 | | @Callable(n) |
---|
70 | | - | func addDAOMember (o) = if (!(g(n.caller))) |
---|
71 | | - | then throw("access only to the DAO owner") |
---|
72 | | - | else if ((a((("dao_member_" + o) + "_weight")) == 1)) |
---|
| 73 | + | func addGroupMember (o) = if (!(a(n.caller))) |
---|
| 74 | + | then throw("access only to the owner") |
---|
| 75 | + | else if ((c((("working_group_member_" + o) + "_weight")) == 1)) |
---|
73 | 76 | | then throw("This user already exists") |
---|
74 | 77 | | else { |
---|
75 | | - | let p = j() |
---|
76 | | - | let q = ((p + ";") + o) |
---|
77 | | - | let r = a("dao_size") |
---|
78 | | - | let s = (r + 1) |
---|
79 | | - | WriteSet([DataEntry("dao_members", q), DataEntry("dao_size", s), DataEntry((("dao_member_" + o) + "_weight"), 1)]) |
---|
| 78 | + | let s = h() |
---|
| 79 | + | let t = ((s + ";") + o) |
---|
| 80 | + | WriteSet([DataEntry("working_group_members", t), DataEntry((("working_group_member_" + o) + "_weight"), 1)]) |
---|
80 | 81 | | } |
---|
81 | 82 | | |
---|
82 | 83 | | |
---|
83 | 84 | | |
---|
84 | 85 | | @Callable(n) |
---|
85 | | - | func addGroupMember (o) = if (!(g(n.caller))) |
---|
86 | | - | then throw("access only to the DAO owner") |
---|
87 | | - | else if ((a((("working_group_member_" + o) + "_weight")) == 1)) |
---|
88 | | - | then throw("This user already exists") |
---|
89 | | - | else { |
---|
90 | | - | let p = i() |
---|
91 | | - | let q = ((p + ";") + o) |
---|
92 | | - | let r = a("working_group_size") |
---|
93 | | - | let s = (r + 1) |
---|
94 | | - | WriteSet([DataEntry("working_group_members", q), DataEntry("working_group_size", s), DataEntry((("working_group_member_" + o) + "_weight"), 1)]) |
---|
95 | | - | } |
---|
| 86 | + | func decisionOnMember (o,u) = if (!(a(n.caller))) |
---|
| 87 | + | then throw("access only to the owner") |
---|
| 88 | + | else WriteSet([DataEntry(("dao_member_" + o), l(u))]) |
---|
96 | 89 | | |
---|
97 | 90 | | |
---|