tx · 7hdzConwyZRCwrCyNeEA43eCXet1Ah3urUGs3ZevT7oG

3MyytsRPxYr48we6CPWAQ1z4x6cmEbHWtFq:  -0.01000000 Waves

2021.02.22 15:44 [1409329] smart account 3MyytsRPxYr48we6CPWAQ1z4x6cmEbHWtFq > SELF 0.00000000 Waves

{ "type": 13, "id": "7hdzConwyZRCwrCyNeEA43eCXet1Ah3urUGs3ZevT7oG", "fee": 1000000, "feeAssetId": null, "timestamp": 1613997851344, "version": 2, "chainId": 84, "sender": "3MyytsRPxYr48we6CPWAQ1z4x6cmEbHWtFq", "senderPublicKey": "551T51u5CXgqTybnycyVjFjM9tKkqVEenm7ZrxxC7gLe", "proofs": [ "neXRp8NJhjKJQ2KSvZiCoJWnn4TbJpywvY6PDhAqK1P3oWiZ2ukMtPVFddncjdh5r28GUiki3Wnv7G7M4UhdZFR" ], "script": "base64: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BEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFN0YWtlUG9vbEtleQAAAAAFAAAADG5ld1N0YWtlUG9vbAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAPYW1vdW50VG9VbnN0YWtlBQAAAAVkeXpJZAUAAAADbmlsAAAAAWkBAAAAFWNsYWltRGFpbHlTdGFrZVJld2FyZAAAAAEAAAAGcmV3YXJkBAAAAAZzdGFrZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAMY3VycmVudFN0YWtlCQEAAAAPZ2V0Q3VycmVudFN0YWtlAAAAAQUAAAAGc3Rha2VyBAAAAAlzdGFrZVBvb2wJAQAAAAxnZXRTdGFrZVBvb2wAAAAABAAAAA1jdXJyZW50SGVpZ2h0BQAAAAZoZWlnaHQEAAAAD2xhc3RDbGFpbUhlaWdodAkBAAAAEmdldExhc3RDbGFpbUhlaWdodAAAAAEFAAAABnN0YWtlcgQAAAARY2xhaW1lZFRvdGFsU29GYXIJAQAAAA9nZXRDbGFpbWVkVG90YWwAAAAABAAAAA9jbGFpbWVkQnlTdGFrZXIJAQAAABJnZXRDbGFpbWVkQnlTdGFrZXIAAAABBQAAAAZzdGFrZXIDCQAAAAAAAAIFAAAADGN1cnJlbnRTdGFrZQAAAAAAAAAAAAkAAAIAAAABAgAAABlZb3UgZG9uJ3QgaGF2ZSBhbnkgc3Rha2VzAwkAAAAAAAACBQAAAAlzdGFrZVBvb2wAAAAAAAAAAAAJAAACAAAAAQIAAAAzTm90aGluZyBpbiBTdGFrZSBwb29sIGF0IHRoaXMgdGltZS4gVHJ5IGFnYWluIGxhdGVyAwkAAGYAAAACBQAAAAZyZXdhcmQFAAAACXN0YWtlUG9vbAkAAAIAAAABAgAAABdObyByZXdhcmRzIGF0IHRoaXMgdGltZQMJAABmAAAAAgkAAGQAAAACBQAAAA9sYXN0Q2xhaW1IZWlnaHQAAAAAAAAABaAFAAAADWN1cnJlbnRIZWlnaHQJAAACAAAAAQIAAAAdWW91IGNhbiBvbmx5IGNsYWltIG9uY2UgYSBkYXkEAAAADG5ld1N0YWtlUG9vbAkAAGUAAAACBQAAAAlzdGFrZVBvb2wFAAAABnJld2FyZAQAAAAObmV3U3Rha2VBbW91bnQFAAAADGN1cnJlbnRTdGFrZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAOY2xhaW1lZF90b3RhbF8FAAAABnN0YWtlcgkAAGQAAAACBQAAAA9jbGFpbWVkQnlTdGFrZXIFAAAABnJld2FyZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAANY2xhaW1lZF90b3RhbAkAAGQAAAACBQAAABFjbGFpbWVkVG90YWxTb0ZhcgUAAAAGcmV3YXJkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAC2xhc3RfY2xhaW1fBQAAAAZzdGFrZXIFAAAADWN1cnJlbnRIZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAAxnZXRTdGFrZXJLZXkAAAABBQAAAAZzdGFrZXIFAAAADm5ld1N0YWtlQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0U3Rha2VQb29sS2V5AAAAAAUAAAAMbmV3U3Rha2VQb29sBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZyZXdhcmQFAAAABWR5eklkBQAAAANuaWwAAAAAb6OF6w==", "height": 1409329, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 6qKBcNQ5Su3PRmmmmb4SHiMvqPBr3XGmQBiB9rLiRSeh Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let upVote = "upvote"
5+
6+let adminAddress1 = base58'3MyytsRPxYr48we6CPWAQ1z4x6cmEbHWtFq'
7+
8+let adminAddress2 = base58'3NAqtCScgFynCuRLUoXm2BHTdu8suatCe7b'
9+
10+let adminAddress3 = base58'3Mucpi1K4FMVrZKnYEgjxQf5DkkBX7QrHoJ'
11+
12+let dyzId = base58'dACACFaoLaRMNGocg5aas4Md9aFP8jdAbLJvF5rqqrV'
13+
14+func getStakePoolKey () = "stake_pool"
15+
16+
17+func getStakePool () = match getInteger(this, getStakePoolKey()) {
18+ case a: Int =>
19+ a
20+ case _ =>
21+ 0
22+}
23+
24+
25+func getVoteAmountKey (id,type) = if ((type == "upvote"))
26+ then (((id + "_") + type) + "_amount")
27+ else throw("Invalid vote type")
28+
29+
30+func getStakerKey (staker) = (staker + "_stake")
31+
32+
33+func getCurrentStake (staker) = match getInteger(this, getStakerKey(staker)) {
34+ case a: Int =>
35+ a
36+ case _ =>
37+ 0
38+}
39+
40+
41+func getProfileKey (id) = (id + "_entrepreneurProfile")
42+
43+
44+func getStatusKey (id) = (id + "_status")
45+
46+
47+func getVoteKey (id,type) = if ((type == "upvote"))
48+ then (id + "_upvote")
49+ else throw("Invalid vote type")
50+
51+
52+func profileExist (id) = match getString(this, getProfileKey(id)) {
53+ case a: String =>
54+ true
55+ case _ =>
56+ false
57+}
58+
59+
60+func getVoteStatus (voteId) = match getString(this, getStatusKey(voteId)) {
61+ case a: String =>
62+ a
63+ case _ =>
64+ false
65+}
66+
67+
68+func getVoterAmountKey (id,voteId) = (((id + "_") + voteId) + "_amount")
69+
70+
71+func getVoteAmountCount (voteId,vote) = match getInteger(this, getVoteAmountKey(voteId, vote)) {
72+ case a: Int =>
73+ a
74+ case _ =>
75+ 0
76+}
77+
78+
79+func getLastClaimHeight (pubKey) = match getInteger(this, ("last_claim_" + pubKey)) {
80+ case a: Int =>
81+ a
82+ case _ =>
83+ 0
84+}
85+
86+
87+func getVoteCount (voteId,vote) = match getInteger(this, getVoteKey(voteId, vote)) {
88+ case a: Int =>
89+ a
90+ case _ =>
91+ throw("Not a valid vote ID")
92+}
93+
94+
95+func getVoterKey (address,voteId) = ((((address + "_") + voteId) + "_") + "vote")
96+
97+
98+func getVoter (address,voteId) = match getString(this, getVoterKey(address, voteId)) {
99+ case a: String =>
100+ a
101+ case _ =>
102+ ""
103+}
104+
105+
106+func canVote (address,voteId) = {
107+ let voter = getVoter(address, voteId)
108+ if ((voter == ""))
109+ then true
110+ else false
111+ }
112+
113+
114+func getClaimedTotal () = match getInteger(this, "claimed_total") {
115+ case a: Int =>
116+ a
117+ case _ =>
118+ 0
119+}
120+
121+
122+func getClaimedByStaker (address) = match getInteger(this, ("claimed_total_" + address)) {
123+ case a: Int =>
124+ a
125+ case _ =>
126+ 0
127+}
128+
129+
130+@Callable(i)
131+func addEntrepreneurProfile (name,avatar,bio,gender,location) = if (if (if ((i.caller.bytes == adminAddress1))
132+ then true
133+ else (i.caller.bytes == adminAddress2))
134+ then true
135+ else (i.caller.bytes == adminAddress3))
136+ then {
137+ let transactionId = toBase58String(i.transactionId)
138+ WriteSet([DataEntry(getProfileKey(transactionId), ((((((((name + "_") + avatar) + "_") + bio) + "_") + gender) + "_") + location)), DataEntry(getVoteKey(transactionId, "upvote"), 0), DataEntry(getVoteAmountKey(transactionId, "upvote"), 0), DataEntry(getStatusKey(transactionId), "open")])
139+ }
140+ else throw("Only Dyzrupt Admin can call this dApp function")
141+
142+
143+
144+@Callable(i)
145+func vote (voteId,vote) = {
146+ let pmt = extract(i.payment)
147+ let voter = toBase58String(i.caller.bytes)
148+ if ((pmt.amount == 0))
149+ then throw("You cannot vote without paying voting fee")
150+ else if ((pmt.assetId != dyzId))
151+ then throw("You can only vote with DYZRUPT token")
152+ else if (canVote(toBase58String(i.caller.bytes), voteId))
153+ then if (profileExist(voteId))
154+ then if ((getVoteStatus(voteId) == "open"))
155+ then if ((vote == upVote))
156+ then {
157+ let voteCount = getVoteCount(voteId, vote)
158+ let voteAmountCount = getVoteAmountCount(voteId, vote)
159+ let newVoteCount = (voteCount + 1)
160+ let newVoteAmountCount = (voteAmountCount + pmt.amount)
161+ ScriptResult(WriteSet([DataEntry(getVoteKey(voteId, vote), newVoteCount), DataEntry(getVoterKey(voter, voteId), voteId), DataEntry(getVoterAmountKey(voter, voteId), pmt.amount), DataEntry(getVoteAmountKey(voteId, vote), newVoteAmountCount)]), TransferSet([ScriptTransfer(this, pmt.amount, dyzId)]))
162+ }
163+ else throw("Not a valid vote value")
164+ else throw("This profile is not open for voting")
165+ else throw("Invalid Profile")
166+ else throw("You can't vote twice")
167+ }
168+
169+
170+
171+@Callable(i)
172+func openVote (voteId) = if (if (if ((i.caller.bytes == adminAddress1))
173+ then true
174+ else (i.caller.bytes == adminAddress2))
175+ then true
176+ else (i.caller.bytes == adminAddress3))
177+ then if (profileExist(voteId))
178+ then WriteSet([DataEntry(getStatusKey(voteId), "open")])
179+ else throw("Invalid ID")
180+ else throw("Only Dyzrupt Admin can call this dApp function")
181+
182+
183+
184+@Callable(i)
185+func closeVote (voteId) = if (if (if ((i.caller.bytes == adminAddress1))
186+ then true
187+ else (i.caller.bytes == adminAddress2))
188+ then true
189+ else (i.caller.bytes == adminAddress3))
190+ then if (profileExist(voteId))
191+ then WriteSet([DataEntry(getStatusKey(voteId), "closed")])
192+ else throw("Invalid ID")
193+ else throw("Only Dyzrupt Admin can call this dApp function")
194+
195+
196+
197+@Callable(i)
198+func withdraw (voteId) = {
199+ let voter = toBase58String(i.caller.bytes)
200+ if ((getVoter(voter, voteId) != ""))
201+ then if ((getVoteStatus(voteId) == "closed"))
202+ then {
203+ let currentKey = getVoterAmountKey(voter, voteId)
204+ let currentAmount = match getInteger(this, currentKey) {
205+ case a: Int =>
206+ a
207+ case _ =>
208+ throw("You didn't vote for this entrepreneur")
209+ }
210+ if ((currentAmount == 0))
211+ then throw("Seems you have previously withdrawn.")
212+ else ScriptResult(WriteSet([DataEntry(currentKey, 0)]), TransferSet([ScriptTransfer(i.caller, currentAmount, dyzId)]))
213+ }
214+ else throw("Can't withdraw vote amount while voting is still open.")
215+ else throw("You didn't vote for this entrepreneur")
216+ }
217+
218+
219+
220+@Callable(i)
221+func stake () = {
222+ let staker = toBase58String(i.caller.bytes)
223+ let pmt = extract(i.payment)
224+ if ((pmt.amount == 0))
225+ then throw("Stake amount too low")
226+ else if ((pmt.assetId != dyzId))
227+ then throw("You can only stake with DYZRUPT token")
228+ else {
229+ let currentStake = getCurrentStake(staker)
230+ let stakeableAmount = fraction(pmt.amount, 5, 100)
231+ let amountToStake = (pmt.amount - stakeableAmount)
232+ let newStakedAmount = (currentStake + amountToStake)
233+ let stakePool = getStakePool()
234+ let newStakePool = (stakePool + stakeableAmount)
235+ ScriptResult(WriteSet([DataEntry(getStakerKey(staker), newStakedAmount), DataEntry(getStakePoolKey(), newStakePool)]), TransferSet(nil))
236+ }
237+ }
238+
239+
240+
241+@Callable(i)
242+func unstake (amount) = {
243+ let staker = toBase58String(i.caller.bytes)
244+ let currentStake = getCurrentStake(staker)
245+ if ((currentStake == 0))
246+ then throw("You don't have any stakes")
247+ else if ((amount > currentStake))
248+ then throw("You can't withdraw an amount higher than you staked")
249+ else {
250+ let unstakeableAmount = fraction(amount, 10, 100)
251+ let amountToUnstake = (amount - unstakeableAmount)
252+ let newUnstakedAmount = (currentStake - amount)
253+ let stakePool = getStakePool()
254+ let newStakePool = (stakePool + unstakeableAmount)
255+ ScriptResult(WriteSet([DataEntry(getStakerKey(staker), newUnstakedAmount), DataEntry(getStakePoolKey(), newStakePool)]), TransferSet([ScriptTransfer(i.caller, amountToUnstake, dyzId)]))
256+ }
257+ }
258+
259+
260+
261+@Callable(i)
262+func claimDailyStakeReward (reward) = {
263+ let staker = toBase58String(i.caller.bytes)
264+ let currentStake = getCurrentStake(staker)
265+ let stakePool = getStakePool()
266+ let currentHeight = height
267+ let lastClaimHeight = getLastClaimHeight(staker)
268+ let claimedTotalSoFar = getClaimedTotal()
269+ let claimedByStaker = getClaimedByStaker(staker)
270+ if ((currentStake == 0))
271+ then throw("You don't have any stakes")
272+ else if ((stakePool == 0))
273+ then throw("Nothing in Stake pool at this time. Try again later")
274+ else if ((reward > stakePool))
275+ then throw("No rewards at this time")
276+ else if (((lastClaimHeight + 1440) > currentHeight))
277+ then throw("You can only claim once a day")
278+ else {
279+ let newStakePool = (stakePool - reward)
280+ let newStakeAmount = currentStake
281+ ScriptResult(WriteSet([DataEntry(("claimed_total_" + staker), (claimedByStaker + reward)), DataEntry("claimed_total", (claimedTotalSoFar + reward)), DataEntry(("last_claim_" + staker), currentHeight), DataEntry(getStakerKey(staker), newStakeAmount), DataEntry(getStakePoolKey(), newStakePool)]), TransferSet([ScriptTransfer(i.caller, reward, dyzId)]))
282+ }
283+ }
284+
285+

github/deemru/w8io/3ef1775 
37.73 ms