tx · GoGv6ztFRorba5EPfg6EaaFTXE69wPY81LofYxfzjyKq

3PPiE3H2Xrd1e5cqEs39ezVDMtRWcgJ1HgN:  -0.02400000 Waves

2020.12.19 01:46 [2378443] smart account 3PPiE3H2Xrd1e5cqEs39ezVDMtRWcgJ1HgN > SELF 0.00000000 Waves

{ "type": 13, "id": "GoGv6ztFRorba5EPfg6EaaFTXE69wPY81LofYxfzjyKq", "fee": 2400000, "feeAssetId": null, "timestamp": 1608331596346, "version": 2, "chainId": 87, "sender": "3PPiE3H2Xrd1e5cqEs39ezVDMtRWcgJ1HgN", "senderPublicKey": "VE7SqX2fdvoPfD7VZmD6PXnxRYf8oGvijckmY7tajBR", "proofs": [ "22kJ8G8opM7NADrbagz46C1FgdNGYMmfihEWNG8XkzJZHwaFE9iewLEVAUhzFG4QS1BkTXHYgboYn5fDpRHFAu2u" ], "script": "base64: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BEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFN0YWtlUG9vbEtleQAAAAAFAAAADG5ld1N0YWtlUG9vbAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAPYW1vdW50VG9VbnN0YWtlBQAAAAVkeXpJZAUAAAADbmlsAAAAAWkBAAAAFWNsYWltRGFpbHlTdGFrZVJld2FyZAAAAAEAAAAGcmV3YXJkBAAAAAZzdGFrZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAMY3VycmVudFN0YWtlCQEAAAAPZ2V0Q3VycmVudFN0YWtlAAAAAQUAAAAGc3Rha2VyBAAAAAlzdGFrZVBvb2wJAQAAAAxnZXRTdGFrZVBvb2wAAAAABAAAAA1jdXJyZW50SGVpZ2h0BQAAAAZoZWlnaHQEAAAAD2xhc3RDbGFpbUhlaWdodAkBAAAAEmdldExhc3RDbGFpbUhlaWdodAAAAAEFAAAABnN0YWtlcgQAAAARY2xhaW1lZFRvdGFsU29GYXIJAQAAAA9nZXRDbGFpbWVkVG90YWwAAAAABAAAAA9jbGFpbWVkQnlTdGFrZXIJAQAAABJnZXRDbGFpbWVkQnlTdGFrZXIAAAABBQAAAAZzdGFrZXIDCQAAAAAAAAIFAAAADGN1cnJlbnRTdGFrZQAAAAAAAAAAAAkAAAIAAAABAgAAABlZb3UgZG9uJ3QgaGF2ZSBhbnkgc3Rha2VzAwkAAAAAAAACBQAAAAlzdGFrZVBvb2wAAAAAAAAAAAAJAAACAAAAAQIAAAAzTm90aGluZyBpbiBTdGFrZSBwb29sIGF0IHRoaXMgdGltZS4gVHJ5IGFnYWluIGxhdGVyAwkAAGYAAAACBQAAAAZyZXdhcmQFAAAACXN0YWtlUG9vbAkAAAIAAAABAgAAABdObyByZXdhcmRzIGF0IHRoaXMgdGltZQMJAABmAAAAAgkAAGQAAAACBQAAAA9sYXN0Q2xhaW1IZWlnaHQAAAAAAAAABaAFAAAADWN1cnJlbnRIZWlnaHQJAAACAAAAAQIAAAAdWW91IGNhbiBvbmx5IGNsYWltIG9uY2UgYSBkYXkEAAAADG5ld1N0YWtlUG9vbAkAAGUAAAACBQAAAAlzdGFrZVBvb2wFAAAABnJld2FyZAQAAAAObmV3U3Rha2VBbW91bnQJAABlAAAAAgUAAAAMY3VycmVudFN0YWtlBQAAAAZyZXdhcmQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAADmNsYWltZWRfdG90YWxfBQAAAAZzdGFrZXIJAABkAAAAAgUAAAAPY2xhaW1lZEJ5U3Rha2VyBQAAAAZyZXdhcmQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADWNsYWltZWRfdG90YWwJAABkAAAAAgUAAAARY2xhaW1lZFRvdGFsU29GYXIFAAAABnJld2FyZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAtsYXN0X2NsYWltXwUAAAAGc3Rha2VyBQAAAA1jdXJyZW50SGVpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAMZ2V0U3Rha2VyS2V5AAAAAQUAAAAGc3Rha2VyBQAAAA5uZXdTdGFrZUFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFN0YWtlUG9vbEtleQAAAAAFAAAADG5ld1N0YWtlUG9vbAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGcmV3YXJkBQAAAAVkeXpJZAUAAAADbmlsAAAAAAH/Mpo=", "height": 2378443, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CTmjVhrwNDG6XpahKT59P6Z9mMe8aZBtF14JLJpDCDE7 Next: D9Hi8HTxnKN5VoANXrXFMEDsne4qYzurDhFFdZT3J5oD Diff:
OldNewDifferences
112112
113113
114114 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)) {
115123 case a: Int =>
116124 a
117125 case _ =>
258266 let currentHeight = height
259267 let lastClaimHeight = getLastClaimHeight(staker)
260268 let claimedTotalSoFar = getClaimedTotal()
269+ let claimedByStaker = getClaimedByStaker(staker)
261270 if ((currentStake == 0))
262271 then throw("You don't have any stakes")
263272 else if ((stakePool == 0))
269278 else {
270279 let newStakePool = (stakePool - reward)
271280 let newStakeAmount = (currentStake - reward)
272- ScriptResult(WriteSet([DataEntry("claimed_total", (claimedTotalSoFar + reward)), DataEntry(("last_claim_" + staker), currentHeight), DataEntry(getStakerKey(staker), newStakeAmount), DataEntry(getStakePoolKey(), newStakePool)]), TransferSet([ScriptTransfer(i.caller, reward, dyzId)]))
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)]))
273282 }
274283 }
275284
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let upVote = "upvote"
55
66 let adminAddress1 = base58'3P2XCb2HwmaEG1zBunzjNq6XNQWmm5Me2sJ'
77
88 let adminAddress2 = base58'3NAqtCScgFynCuRLUoXm2BHTdu8suatCe7b'
99
1010 let adminAddress3 = base58'3Mucpi1K4FMVrZKnYEgjxQf5DkkBX7QrHoJ'
1111
1212 let dyzId = base58'dACACFaoLaRMNGocg5aas4Md9aFP8jdAbLJvF5rqqrV'
1313
1414 func getStakePoolKey () = "stake_pool"
1515
1616
1717 func getStakePool () = match getInteger(this, getStakePoolKey()) {
1818 case a: Int =>
1919 a
2020 case _ =>
2121 0
2222 }
2323
2424
2525 func getVoteAmountKey (id,type) = if ((type == "upvote"))
2626 then (((id + "_") + type) + "_amount")
2727 else throw("Invalid vote type")
2828
2929
3030 func getStakerKey (staker) = (staker + "_stake")
3131
3232
3333 func getCurrentStake (staker) = match getInteger(this, getStakerKey(staker)) {
3434 case a: Int =>
3535 a
3636 case _ =>
3737 0
3838 }
3939
4040
4141 func getProfileKey (id) = (id + "_entrepreneurProfile")
4242
4343
4444 func getStatusKey (id) = (id + "_status")
4545
4646
4747 func getVoteKey (id,type) = if ((type == "upvote"))
4848 then (id + "_upvote")
4949 else throw("Invalid vote type")
5050
5151
5252 func profileExist (id) = match getString(this, getProfileKey(id)) {
5353 case a: String =>
5454 true
5555 case _ =>
5656 false
5757 }
5858
5959
6060 func getVoteStatus (voteId) = match getString(this, getStatusKey(voteId)) {
6161 case a: String =>
6262 a
6363 case _ =>
6464 false
6565 }
6666
6767
6868 func getVoterAmountKey (id,voteId) = (((id + "_") + voteId) + "_amount")
6969
7070
7171 func getVoteAmountCount (voteId,vote) = match getInteger(this, getVoteAmountKey(voteId, vote)) {
7272 case a: Int =>
7373 a
7474 case _ =>
7575 0
7676 }
7777
7878
7979 func getLastClaimHeight (pubKey) = match getInteger(this, ("last_claim_" + pubKey)) {
8080 case a: Int =>
8181 a
8282 case _ =>
8383 0
8484 }
8585
8686
8787 func getVoteCount (voteId,vote) = match getInteger(this, getVoteKey(voteId, vote)) {
8888 case a: Int =>
8989 a
9090 case _ =>
9191 throw("Not a valid vote ID")
9292 }
9393
9494
9595 func getVoterKey (address,voteId) = ((((address + "_") + voteId) + "_") + "vote")
9696
9797
9898 func getVoter (address,voteId) = match getString(this, getVoterKey(address, voteId)) {
9999 case a: String =>
100100 a
101101 case _ =>
102102 ""
103103 }
104104
105105
106106 func canVote (address,voteId) = {
107107 let voter = getVoter(address, voteId)
108108 if ((voter == ""))
109109 then true
110110 else false
111111 }
112112
113113
114114 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)) {
115123 case a: Int =>
116124 a
117125 case _ =>
118126 0
119127 }
120128
121129
122130 @Callable(i)
123131 func addEntrepreneurProfile (name,avatar,bio,gender,location) = if (if (if ((i.caller.bytes == adminAddress1))
124132 then true
125133 else (i.caller.bytes == adminAddress2))
126134 then true
127135 else (i.caller.bytes == adminAddress3))
128136 then {
129137 let transactionId = toBase58String(i.transactionId)
130138 WriteSet([DataEntry(getProfileKey(transactionId), ((((((((name + "_") + avatar) + "_") + bio) + "_") + gender) + "_") + location)), DataEntry(getVoteKey(transactionId, "upvote"), 0), DataEntry(getVoteAmountKey(transactionId, "upvote"), 0), DataEntry(getStatusKey(transactionId), "open")])
131139 }
132140 else throw("Only Dyzrupt Admin can call this dApp function")
133141
134142
135143
136144 @Callable(i)
137145 func vote (voteId,vote) = {
138146 let pmt = extract(i.payment)
139147 let voter = toBase58String(i.caller.bytes)
140148 if ((pmt.amount == 0))
141149 then throw("You cannot vote without paying voting fee")
142150 else if ((pmt.assetId != dyzId))
143151 then throw("You can only vote with DYZRUPT token")
144152 else if (canVote(toBase58String(i.caller.bytes), voteId))
145153 then if (profileExist(voteId))
146154 then if ((getVoteStatus(voteId) == "open"))
147155 then if ((vote == upVote))
148156 then {
149157 let voteCount = getVoteCount(voteId, vote)
150158 let voteAmountCount = getVoteAmountCount(voteId, vote)
151159 let newVoteCount = (voteCount + 1)
152160 let newVoteAmountCount = (voteAmountCount + pmt.amount)
153161 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)]))
154162 }
155163 else throw("Not a valid vote value")
156164 else throw("This profile is not open for voting")
157165 else throw("Invalid Profile")
158166 else throw("You can't vote twice")
159167 }
160168
161169
162170
163171 @Callable(i)
164172 func openVote (voteId) = if (if (if ((i.caller.bytes == adminAddress1))
165173 then true
166174 else (i.caller.bytes == adminAddress2))
167175 then true
168176 else (i.caller.bytes == adminAddress3))
169177 then if (profileExist(voteId))
170178 then WriteSet([DataEntry(getStatusKey(voteId), "open")])
171179 else throw("Invalid ID")
172180 else throw("Only Dyzrupt Admin can call this dApp function")
173181
174182
175183
176184 @Callable(i)
177185 func closeVote (voteId) = if (if (if ((i.caller.bytes == adminAddress1))
178186 then true
179187 else (i.caller.bytes == adminAddress2))
180188 then true
181189 else (i.caller.bytes == adminAddress3))
182190 then if (profileExist(voteId))
183191 then WriteSet([DataEntry(getStatusKey(voteId), "closed")])
184192 else throw("Invalid ID")
185193 else throw("Only Dyzrupt Admin can call this dApp function")
186194
187195
188196
189197 @Callable(i)
190198 func withdraw (voteId) = {
191199 let voter = toBase58String(i.caller.bytes)
192200 if ((getVoter(voter, voteId) != ""))
193201 then if ((getVoteStatus(voteId) == "closed"))
194202 then {
195203 let currentKey = getVoterAmountKey(voter, voteId)
196204 let currentAmount = match getInteger(this, currentKey) {
197205 case a: Int =>
198206 a
199207 case _ =>
200208 throw("You didn't vote for this entrepreneur")
201209 }
202210 if ((currentAmount == 0))
203211 then throw("Seems you have previously withdrawn.")
204212 else ScriptResult(WriteSet([DataEntry(currentKey, 0)]), TransferSet([ScriptTransfer(i.caller, currentAmount, dyzId)]))
205213 }
206214 else throw("Can't withdraw vote amount while voting is still open.")
207215 else throw("You didn't vote for this entrepreneur")
208216 }
209217
210218
211219
212220 @Callable(i)
213221 func stake () = {
214222 let staker = toBase58String(i.caller.bytes)
215223 let pmt = extract(i.payment)
216224 if ((pmt.amount == 0))
217225 then throw("Stake amount too low")
218226 else if ((pmt.assetId != dyzId))
219227 then throw("You can only stake with DYZRUPT token")
220228 else {
221229 let currentStake = getCurrentStake(staker)
222230 let stakeableAmount = fraction(pmt.amount, 5, 100)
223231 let amountToStake = (pmt.amount - stakeableAmount)
224232 let newStakedAmount = (currentStake + amountToStake)
225233 let stakePool = getStakePool()
226234 let newStakePool = (stakePool + stakeableAmount)
227235 ScriptResult(WriteSet([DataEntry(getStakerKey(staker), newStakedAmount), DataEntry(getStakePoolKey(), newStakePool)]), TransferSet(nil))
228236 }
229237 }
230238
231239
232240
233241 @Callable(i)
234242 func unstake (amount) = {
235243 let staker = toBase58String(i.caller.bytes)
236244 let currentStake = getCurrentStake(staker)
237245 if ((currentStake == 0))
238246 then throw("You don't have any stakes")
239247 else if ((amount > currentStake))
240248 then throw("You can't withdraw an amount higher than you staked")
241249 else {
242250 let unstakeableAmount = fraction(amount, 10, 100)
243251 let amountToUnstake = (amount - unstakeableAmount)
244252 let newUnstakedAmount = (currentStake - amount)
245253 let stakePool = getStakePool()
246254 let newStakePool = (stakePool + unstakeableAmount)
247255 ScriptResult(WriteSet([DataEntry(getStakerKey(staker), newUnstakedAmount), DataEntry(getStakePoolKey(), newStakePool)]), TransferSet([ScriptTransfer(i.caller, amountToUnstake, dyzId)]))
248256 }
249257 }
250258
251259
252260
253261 @Callable(i)
254262 func claimDailyStakeReward (reward) = {
255263 let staker = toBase58String(i.caller.bytes)
256264 let currentStake = getCurrentStake(staker)
257265 let stakePool = getStakePool()
258266 let currentHeight = height
259267 let lastClaimHeight = getLastClaimHeight(staker)
260268 let claimedTotalSoFar = getClaimedTotal()
269+ let claimedByStaker = getClaimedByStaker(staker)
261270 if ((currentStake == 0))
262271 then throw("You don't have any stakes")
263272 else if ((stakePool == 0))
264273 then throw("Nothing in Stake pool at this time. Try again later")
265274 else if ((reward > stakePool))
266275 then throw("No rewards at this time")
267276 else if (((lastClaimHeight + 1440) > currentHeight))
268277 then throw("You can only claim once a day")
269278 else {
270279 let newStakePool = (stakePool - reward)
271280 let newStakeAmount = (currentStake - reward)
272- ScriptResult(WriteSet([DataEntry("claimed_total", (claimedTotalSoFar + reward)), DataEntry(("last_claim_" + staker), currentHeight), DataEntry(getStakerKey(staker), newStakeAmount), DataEntry(getStakePoolKey(), newStakePool)]), TransferSet([ScriptTransfer(i.caller, reward, dyzId)]))
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)]))
273282 }
274283 }
275284
276285

github/deemru/w8io/6500d08 
58.83 ms