tx · FsKPHjfB9avLziGV5VKBXLJa5YxiN4RtPGkhR8VyPQ5q

3PKNvmzTFYkwRDVJUFY2WxZyJ8D2GC2GP2u:  -0.01000000 Waves

2021.10.03 23:44 [2795537] smart account 3PKNvmzTFYkwRDVJUFY2WxZyJ8D2GC2GP2u > SELF 0.00000000 Waves

{ "type": 13, "id": "FsKPHjfB9avLziGV5VKBXLJa5YxiN4RtPGkhR8VyPQ5q", "fee": 1000000, "feeAssetId": null, "timestamp": 1633293896494, "version": 2, "chainId": 87, "sender": "3PKNvmzTFYkwRDVJUFY2WxZyJ8D2GC2GP2u", "senderPublicKey": "8mrUL4yzR4vz145JJYrAb9Q28r83vV9CxxSfRk4UeWFY", "proofs": [ "4nUHkP8Aaw76p7oTBxxYVoJSahbBYt4AsnyieESv8xkMsJYYudgyAtmdtC1AtmdgcNr8BsraWYvt45NjxyLuNVWR" ], "script": "base64:AAIFAAAAAAAAAAYIAhIAEgAAAAAHAAAAAAtmcm9lQXNzZXRJZAEAAAAgSsv1ZJ09Ny43QbbnBS7IGxI8mddY9Mw8h+wjzyuSMzUAAAAACGJhc2VVbml0AAAAAAAAACcQAAAAAAt0b3RhbFZvdGVycwQAAAAHJG1hdGNoMAkABB8AAAABAgAAAAxUb3RhbF9Wb3RlcnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAACdmkFAAAAByRtYXRjaDAFAAAAAnZpAAAAAAAAAAAAAAAAAAx0b3RhbEJhbGFuY2UEAAAAByRtYXRjaDAJAAQfAAAAAQIAAAANVG90YWxfQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAR0QmFsBQAAAAckbWF0Y2gwBQAAAAR0QmFsAAAAAAAAAAAAAAAAAApncmFuZFRvdGFsAwkBAAAAAiE9AAAAAgUAAAALdG90YWxWb3RlcnMAAAAAAAAAAAAFAAAAC3RvdGFsVm90ZXJzCQAAAgAAAAECAAAAI1RvdGFsIE51bWJlciBvZiBWb3RlcnMgaXMgVW5kZWZpbmVkAAAAAAp3b3JraW5nQmFsAwkBAAAAAiE9AAAAAgUAAAAMdG90YWxCYWxhbmNlAAAAAAAAAAAACQAAaAAAAAIFAAAADHRvdGFsQmFsYW5jZQUAAAAIYmFzZVVuaXQJAAACAAAAAQIAAAAvQXZhaWxhYmxlIFRvdGFsIEJhbGFuY2UgaGF2ZSBub3QgYmVlbiBzcGVjaWZpZWQBAAAAD2NhbGN1bGF0ZVJld2FyZAAAAAEAAAAKcGVyY2VudGFnZQQAAAAVY29udmVydGVyZWRQZXJjZW50YWdlCQAAaAAAAAIFAAAACnBlcmNlbnRhZ2UFAAAACGJhc2VVbml0BAAAABBwZXJjZW50YWdlUmV3YXJkCQAAawAAAAMFAAAACndvcmtpbmdCYWwFAAAAFWNvbnZlcnRlcmVkUGVyY2VudGFnZQkAAGgAAAACAAAAAAAAAABkBQAAAAhiYXNlVW5pdAQAAAAGcmV3YXJkCQAAaQAAAAIFAAAAEHBlcmNlbnRhZ2VSZXdhcmQFAAAACmdyYW5kVG90YWwFAAAABnJld2FyZAAAAAIAAAABaQEAAAAEVm90ZQAAAAAEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAAChZb3UgbmVlZCBleGFjdGx5IG9uZSBmcm9lIHRvIG1ha2UgYSB2b3RlBAAAAA5BZGRyZXNzT2ZWb3RlcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAxjdXJyZW50dmFsdWUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAARVG90YWxfdm90ZV9hbW91bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABdAUAAAAHJG1hdGNoMAUAAAABdAAAAAAAAAAAAAQAAAAKY2hlY2tWb3RlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEFZvdGVfQW1vdW50X0Zvcl8FAAAADkFkZHJlc3NPZlZvdGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWMFAAAAByRtYXRjaDAFAAAAAWMFAAAABHVuaXQEAAAAC3ZvdGVyc0luZGV4BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAC1ZvdGVyX0luZGV4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACXZvdGVTdGF0ZQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzAgAAAApWb3RlX1N0YXRlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXYFAAAAByRtYXRjaDAFAAAAAXYFAAAABHVuaXQDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAC2Zyb2VBc3NldElkCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAChJbmNvcnJlY3QgYXNzZXQgYXR0YWNoZWQsIHBsZWFzZSBhdHRhY2ggCQACWAAAAAEFAAAAC2Zyb2VBc3NldElkAgAAAAYgb25seS4DCQAAAAAAAAIFAAAACXZvdGVTdGF0ZQIAAAAIRElTQUJMRUQJAAACAAAAAQIAAAAbVm90aW5nIGlzIGN1cnJlbnRseSBkaXNhYmxlAwkBAAAAAiE9AAAAAgUAAAAKY2hlY2tWb3RlcgUAAAAEdW5pdAkAAAIAAAABAgAAABFZb3UgYWxyZWFkeSBWb3RlZAMJAQAAAAIhPQAAAAIAAAAAAAAAJxAIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAAJUV4YWN0bHkgMSBGcm9lIGlzIG5lZWQgdG8gbWFrZSBhIHZvdGUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAFVm90ZXIFAAAADkFkZHJlc3NPZlZvdGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEFZvdGVfQW1vdW50X0Zvcl8FAAAADkFkZHJlc3NPZlZvdGVyCAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALVm90ZXJfSW5kZXgJAABkAAAAAgUAAAALdm90ZXJzSW5kZXgAAAAAAAAAAAEFAAAAA25pbAAAAAFpAQAAAAhXaXRoZHJhdwAAAAAEAAAAEmNoZWNrV2l0aERyYXdTdGF0ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwIAAAAOV2l0aGRyYXdfU3RhdGUEAAAADmVsaWdpYmxlUmV3YXJkCQEAAAARQGV4dHJOYXRpdmUoMTA1MSkAAAACBQAAAAR0aGlzAgAAAA9Wb3RlX1N1Y2Nlc3NmdWwEAAAADkFkZHJlc3NPZlZvdGVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABnJld2FyZAMJAAAAAAAAAgUAAAAOZWxpZ2libGVSZXdhcmQGCQEAAAAPY2FsY3VsYXRlUmV3YXJkAAAAAQAAAAAAAAAAUQUAAAAIYmFzZVVuaXQEAAAADmNoZWNrVmFsaWRWb3RlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAQVm90ZV9BbW91bnRfRm9yXwUAAAAOQWRkcmVzc09mVm90ZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADdmFsBQAAAAckbWF0Y2gwBQAAAAN2YWwAAAAAAAAAAAAEAAAAEGFscmVhZHlXaXRoZHJhd24EAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwIAAAAQTWFya2VkX1dpdGhkcmF3bgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAF0BQAAAAckbWF0Y2gwBQAAAAF0BQAAAAR1bml0AwkAAAAAAAACBQAAABJjaGVja1dpdGhEcmF3U3RhdGUCAAAACERJU0FCTEVECQAAAgAAAAECAAAAWldpdGhkcmF3YWwgSXMgY3VycmVudGx5IGRpc2FibGVkLiBBIG1pbmltdW0gIG9mIDMwIERheXMgaXMgbmVlZGVkIGZvciBlbGlnaWJsZSB3aXRoZHJhd2FscwMJAAAAAAAAAgUAAAAOY2hlY2tWYWxpZFZvdGUAAAAAAAAAAAAJAAACAAAAAQIAAAATTm8gVmFsaWQgVm90ZSBGb3VuZAMJAQAAAAIhPQAAAAIFAAAAEGFscmVhZHlXaXRoZHJhd24FAAAABHVuaXQJAAACAAAAAQIAAAAUWW91IGFscmVhZHkgd2l0aGRyZXcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZyZXdhcmQFAAAAC2Zyb2VBc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABBSZXdhcmRfRHVlX1ZvdGVyBQAAAAZyZXdhcmQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAQTWFya2VkX1dpdGhkcmF3bgUAAAAOQWRkcmVzc09mVm90ZXIFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5FmzWBw==", "height": 2795537, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CaB2brN55ht5syni96FeETsQWaiHSuaATf8QAHSe3fV1 Next: FGbAHFbaAPAg2SxvxonPmxZR6S2N9wwcXzMhYggzV3t6 Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let froeAssetId = base58'62yYzfZL17bnZ2aPCuDoT1mfwick4PMHNooyAewfq8Sp'
5+
6+let baseUnit = 10000
7+
8+let totalVoters = match getInteger("Total_Voters") {
9+ case vi: Int =>
10+ vi
11+ case _ =>
12+ 0
13+}
14+
15+let totalBalance = match getInteger("Total_Balance") {
16+ case tBal: Int =>
17+ tBal
18+ case _ =>
19+ 0
20+}
21+
22+let grandTotal = if ((totalVoters != 0))
23+ then totalVoters
24+ else throw("Total Number of Voters is Undefined")
25+
26+let workingBal = if ((totalBalance != 0))
27+ then (totalBalance * baseUnit)
28+ else throw("Available Total Balance have not been specified")
29+
30+func calculateReward (percentage) = {
31+ let converteredPercentage = (percentage * baseUnit)
32+ let percentageReward = fraction(workingBal, converteredPercentage, (100 * baseUnit))
33+ let reward = (percentageReward / grandTotal)
34+ reward
35+ }
36+
37+
38+@Callable(i)
39+func Vote () = {
40+ let pmt = if ((size(i.payments) == 1))
41+ then i.payments[0]
42+ else throw("You need exactly one froe to make a vote")
43+ let AddressOfVoter = toBase58String(i.caller.bytes)
44+ let currentvalue = match getInteger(this, "Total_vote_amount") {
45+ case t: Int =>
46+ t
47+ case _ =>
48+ 0
49+ }
50+ let checkVoter = match getInteger(this, ("Vote_Amount_For_" + AddressOfVoter)) {
51+ case c: Int =>
52+ c
53+ case _ =>
54+ unit
55+ }
56+ let votersIndex = match getInteger(this, "Voter_Index") {
57+ case a: Int =>
58+ a
59+ case _ =>
60+ 0
61+ }
62+ let voteState = match getString(this, "Vote_State") {
63+ case v: String =>
64+ v
65+ case _ =>
66+ unit
67+ }
68+ if ((pmt.assetId != froeAssetId))
69+ then throw((("Incorrect asset attached, please attach " + toBase58String(froeAssetId)) + " only."))
70+ else if ((voteState == "DISABLED"))
71+ then throw("Voting is currently disable")
72+ else if ((checkVoter != unit))
73+ then throw("You already Voted")
74+ else if ((10000 != pmt.amount))
75+ then throw("Exactly 1 Froe is need to make a vote")
76+ else [StringEntry("Voter", AddressOfVoter), IntegerEntry(("Vote_Amount_For_" + AddressOfVoter), pmt.amount), IntegerEntry("Voter_Index", (votersIndex + 1))]
77+ }
78+
79+
80+
81+@Callable(i)
82+func Withdraw () = {
83+ let checkWithDrawState = getStringValue(this, "Withdraw_State")
84+ let eligibleReward = getBooleanValue(this, "Vote_Successful")
85+ let AddressOfVoter = toBase58String(i.caller.bytes)
86+ let reward = if ((eligibleReward == true))
87+ then calculateReward(81)
88+ else baseUnit
89+ let checkValidVote = match getInteger(this, ("Vote_Amount_For_" + AddressOfVoter)) {
90+ case val: Int =>
91+ val
92+ case _ =>
93+ 0
94+ }
95+ let alreadyWithdrawn = match getString(this, "Marked_Withdrawn") {
96+ case t: String =>
97+ t
98+ case _ =>
99+ unit
100+ }
101+ if ((checkWithDrawState == "DISABLED"))
102+ then throw("Withdrawal Is currently disabled. A minimum of 30 Days is needed for eligible withdrawals")
103+ else if ((checkValidVote == 0))
104+ then throw("No Valid Vote Found")
105+ else if ((alreadyWithdrawn != unit))
106+ then throw("You already withdrew")
107+ else [ScriptTransfer(i.caller, reward, froeAssetId), IntegerEntry("Reward_Due_Voter", reward), StringEntry("Marked_Withdrawn", AddressOfVoter)]
108+ }
109+
110+
111+@Verifier(tx)
112+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
113+

github/deemru/w8io/3ef1775 
24.50 ms