tx · 7gMyjDVw22JVZcbqKEcZikht2mtgvtkPJ9hZmL2QPJ9M

3MuwmoHDxZZP9bGwExfL3L8JpMU5r95oBr8:  -0.01000000 Waves

2021.12.20 10:26 [1842281] smart account 3MuwmoHDxZZP9bGwExfL3L8JpMU5r95oBr8 > SELF 0.00000000 Waves

{ "type": 13, "id": "7gMyjDVw22JVZcbqKEcZikht2mtgvtkPJ9hZmL2QPJ9M", "fee": 1000000, "feeAssetId": null, "timestamp": 1639985227377, "version": 2, "chainId": 84, "sender": "3MuwmoHDxZZP9bGwExfL3L8JpMU5r95oBr8", "senderPublicKey": "B8mXne2bErXPSLJvpntKVoudEBjypi3Ag6RfxqTr5pEg", "proofs": [ "5MgXQf9nb2qTTicLqEWF2rZyVZJFp4bHVSwQpnCshcHTvJFBPhVgtg6kYK5cGoq6kTztauHbVysdeGS8cV5ZvUoA" ], "script": "base64:AAIFAAAAAAAAAU0IAhIGCgQICAgIEgMKAQgSAwoBCBIDCgEIGgwKAWESB25hbWVLZXkaDAoBYhIHbmFtZVVybBoTCgFjEg5kZXNjcmlwdGlvbktleRoQCgFkEgtpcGZzSGFzaEtleRoPCgFlEgphZGRyZXNzS2V5Gg4KAWYSCXN0YXR1c0tleRoMCgFnEgd2b3RlS2V5Gg4KAWgSCWNoZWNrVm90ZRoPCgFpEgpudW1iZXJWb3RlGgsKAWoSBnZvaWNlcxoICgFrEgNpbnYaCQoBbBIEbmFtZRoQCgFtEgtkZXNjcmlwdGlvbhoJCgFuEgRoYXNoGg8KAW8SCmxpc3RWb3RpbmcaDAoBcBIHYWRkcmVzcxoJCgFxEgRsaXN0GgoKAXISBWluZGV4GgwKAXMSByRtYXRjaDAaBgoBdBIBdBoHCgF1EgJ0eBoLCgF2EgZ2ZXJpZnkAAAAHAQAAAAFhAAAAAQAAAAFiCQABLAAAAAIFAAAAAWICAAAABV9uYW1lAQAAAAFjAAAAAQAAAAFiCQABLAAAAAIFAAAAAWICAAAADF9kZXNjcmlwdGlvbgEAAAABZAAAAAEAAAABYgkAASwAAAACBQAAAAFiAgAAAAVfaGFzaAEAAAABZQAAAAEAAAABYgkAASwAAAACBQAAAAFiAgAAAAhfYWRkcmVzcwEAAAABZgAAAAEAAAABYgkAASwAAAACBQAAAAFiAgAAAAdfc3RhdHVzAQAAAAFnAAAAAQAAAAFiCQABLAAAAAIFAAAAAWICAAAABV92b3RlAQAAAAFoAAAAAgAAAAFpAAAAAWoDCQAAZgAAAAIFAAAAAWoJAABpAAAAAgUAAAABaQAAAAAAAAAAAgIAAAAGVkVSSUZZAgAAAAZWT1RJTkcAAAAEAAAAAWsBAAAAEHZlcmlmeUNvbGxlY3Rpb24AAAAEAAAAAWIAAAABbAAAAAFtAAAAAW4DCQEAAAACIT0AAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1OCkAAAABCQEAAAABYQAAAAEFAAAAAWICAAAAAAkAAAIAAAABAgAAABpUaGlzIGNvbGxlY3Rpb24gd2FzIGNyZWF0ZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAABYQAAAAEFAAAAAWIFAAAAAWwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAAWMAAAABBQAAAAFiBQAAAAFtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAFlAAAAAQUAAAABYgkAAlgAAAABCAgFAAAAAWsAAAAGY2FsbGVyAAAABWJ5dGVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAFkAAAAAQUAAAABYgUAAAABbgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAABZgAAAAEFAAAAAWICAAAABlZPVElORwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAAWcAAAABBQAAAAFiAAAAAAAAAAAABQAAAANuaWwAAAABawEAAAAEdm90ZQAAAAEAAAABYgQAAAABbwkABLUAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1OCkAAAABAgAAAA12b3RpbmdfbWVtYmVyAgAAAAEsAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAABbwkAAlgAAAABCAgFAAAAAWsAAAAGY2FsbGVyAAAABWJ5dGVzCQAAAgAAAAECAAAADllvdSBjYW4ndCB2b3RlAwkAAAAAAAACCQEAAAABZgAAAAEFAAAAAWICAAAABlZFUklGWQkAAAIAAAABAgAAABBWb3Rpbmcgd2FzIGVuZGVkBAAAAAFqCQAAZAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEJAQAAAAFnAAAAAQUAAAABYgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAAWcAAAABBQAAAAFiBQAAAAFqCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAFmAAAAAQUAAAABYgkBAAAAAWgAAAACCQABkAAAAAEFAAAAAW8FAAAAAWoFAAAAA25pbAAAAAFrAQAAAAlhZGRWb3RpbmcAAAABAAAAAXAEAAAAAW8JAAS1AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQIAAAANdm90aW5nX21lbWJlcgIAAAABLAMJAQAAAAIhPQAAAAIJAAJYAAAAAQgIBQAAAAFrAAAABmNhbGxlcgAAAAVieXRlcwkAAlgAAAABCAUAAAAEdGhpcwAAAAVieXRlcwkAAAIAAAABAgAAAA9Zb3UgZG9uJ3Qgb3duZXIDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAABbwUAAAABcAkAAAIAAAABAgAAABZUaGlzIGFkZHJlc3Mgd2FzIGFkZGVkBAAAAAFxCQAETAAAAAIFAAAAAXAFAAAAAW8JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAANdm90aW5nX21lbWJlcgkABLkAAAACBQAAAAFxAgAAAAEsBQAAAANuaWwAAAABawEAAAAMcmVtb3ZlVm90aW5nAAAAAQAAAAFwBAAAAAFvCQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDU4KQAAAAECAAAADXZvdGluZ19tZW1iZXICAAAAASwDCQEAAAACIT0AAAACCQACWAAAAAEICAUAAAABawAAAAZjYWxsZXIAAAAFYnl0ZXMJAAJYAAAAAQgFAAAABHRoaXMAAAAFYnl0ZXMJAAACAAAAAQIAAAAPWW91IGRvbid0IG93bmVyAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAABbwUAAAABcAkAAAIAAAABAgAAABlUaGlzIGFkZHJlc3Mgd2Fzbid0IGFkZGVkBAAAAAFyBAAAAAFzCQAETwAAAAIFAAAAAW8FAAAAAXADCQAAAQAAAAIFAAAAAXMCAAAAA0ludAQAAAABdAUAAAABcwUAAAABdAAAAAAAAAAAAAQAAAABcQkABFEAAAACBQAAAAFvBQAAAAFyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADXZvdGluZ19tZW1iZXIJAAS5AAAAAgUAAAABcQIAAAABLAUAAAADbmlsAAAAAQAAAAF1AQAAAAF2AAAAAAkAAfQAAAADCAUAAAABdQAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAXUAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAABdQAAAA9zZW5kZXJQdWJsaWNLZXl8ah1P", "height": 1842281, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: AZt6vvMZmHsNEyMMYzWiVYbURRfQA6CAfaBZmearKsan Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func nameKey (nameUrl) = (nameUrl + "_name")
5+
6+
7+func descriptionKey (nameUrl) = (nameUrl + "_description")
8+
9+
10+func ipfsHashKey (nameUrl) = (nameUrl + "_hash")
11+
12+
13+func addressKey (nameUrl) = (nameUrl + "_address")
14+
15+
16+func statusKey (nameUrl) = (nameUrl + "_status")
17+
18+
19+func voteKey (nameUrl) = (nameUrl + "_vote")
20+
21+
22+func checkVote (numberVote,voices) = if ((voices > (numberVote / 2)))
23+ then "VERIFY"
24+ else "VOTING"
25+
26+
27+@Callable(inv)
28+func verifyCollection (nameUrl,name,description,hash) = if ((getStringValue(nameKey(nameUrl)) != ""))
29+ then throw("This collection was create")
30+ else [StringEntry(nameKey(nameUrl), name), StringEntry(descriptionKey(nameUrl), description), StringEntry(addressKey(nameUrl), toBase58String(inv.caller.bytes)), StringEntry(ipfsHashKey(nameUrl), hash), StringEntry(statusKey(nameUrl), "VOTING"), IntegerEntry(voteKey(nameUrl), 0)]
31+
32+
33+
34+@Callable(inv)
35+func vote (nameUrl) = {
36+ let listVoting = split(getStringValue("voting_member"), ",")
37+ if (!(containsElement(listVoting, toBase58String(inv.caller.bytes))))
38+ then throw("You can't vote")
39+ else if ((statusKey(nameUrl) == "VERIFY"))
40+ then throw("Voting was ended")
41+ else {
42+ let voices = (getIntegerValue(voteKey(nameUrl)) + 1)
43+[IntegerEntry(voteKey(nameUrl), voices), StringEntry(statusKey(nameUrl), checkVote(size(listVoting), voices))]
44+ }
45+ }
46+
47+
48+
49+@Callable(inv)
50+func addVoting (address) = {
51+ let listVoting = split(getStringValue("voting_member"), ",")
52+ if ((toBase58String(inv.caller.bytes) != toBase58String(this.bytes)))
53+ then throw("You don't owner")
54+ else if (containsElement(listVoting, address))
55+ then throw("This address was added")
56+ else {
57+ let list = address :: listVoting
58+[StringEntry("voting_member", makeString(list, ","))]
59+ }
60+ }
61+
62+
63+
64+@Callable(inv)
65+func removeVoting (address) = {
66+ let listVoting = split(getStringValue("voting_member"), ",")
67+ if ((toBase58String(inv.caller.bytes) != toBase58String(this.bytes)))
68+ then throw("You don't owner")
69+ else if (!(containsElement(listVoting, address)))
70+ then throw("This address wasn't added")
71+ else {
72+ let index = match indexOf(listVoting, address) {
73+ case t: Int =>
74+ t
75+ case _ =>
76+ 0
77+ }
78+ let list = removeByIndex(listVoting, index)
79+[StringEntry("voting_member", makeString(list, ","))]
80+ }
81+ }
82+
83+
84+@Verifier(tx)
85+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
86+

github/deemru/w8io/c3f4982 
13.50 ms