tx · 2f1wsMhyEcCo5pp43fWqnZkaXiUsXoZW1bR8C2oBTBmH

3PLYvTCK8LTRt87EqUULt428zTLteWWyf4b:  -0.01400000 Waves

2021.02.13 17:17 [2460293] smart account 3PLYvTCK8LTRt87EqUULt428zTLteWWyf4b > SELF 0.00000000 Waves

{ "type": 13, "id": "2f1wsMhyEcCo5pp43fWqnZkaXiUsXoZW1bR8C2oBTBmH", "fee": 1400000, "feeAssetId": null, "timestamp": 1613225824340, "version": 2, "chainId": 87, "sender": "3PLYvTCK8LTRt87EqUULt428zTLteWWyf4b", "senderPublicKey": "9WACrLAMCHtDfK9qzqMzNNVrgyM7wTrru5egp9X65H7v", "proofs": [ "cy2ovCyiQ3mjkVjLC5VeWqKgEd9ZAsCYVUzfo516fsDZ8mYmsBSACTaWw8VMf6qMrzZvujbi1nmnXCGyvbeCpsM" ], "script": null, "height": 2460293, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AXBM4HvzJ4mcGJXSJ81Hnpo2AUwK1GeC6Ewu3yjmMJJa Next: Ds6jyNPautSQnTSUmJx9zo4d7VQwANWQBUVLj5Hh1Fdv Full:
OldNewDifferences
1-{-# STDLIB_VERSION 4 #-}
2-{-# SCRIPT_TYPE ACCOUNT #-}
3-{-# CONTENT_TYPE DAPP #-}
4-let adminPubKey1 = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
5-
6-let adminPubKey2 = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
7-
8-let adminPubKey3 = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
9-
10-let keyLastInterest = "last_interest"
11-
12-let keyUserLastInterest = "_last_interest"
13-
14-let keyUserSWOPAmount = "_SWOP_amount"
15-
16-let keyUserGetBackHeight = "_getBackHeight"
17-
18-let keyTotalSWOPAmount = "total_SWOP_amount"
19-
20-let keyUserVoteTotalAmount = "_total_SWOP_vote_amount"
21-
22-let keyUserVoteOptionAmount = "_SWOP_option_amount"
23-
24-let keyTotalVoteOptionAmount = "total_SWOP_option_amount"
25-
26-let keyUserSWOPClaimedAmount = "_SWOP_claimed_amount"
27-
28-let keyUserSWOPLastClaimedAmount = "_SWOP_last_claimed_amount"
29-
30-let keyVoteName = "vote_name"
31-
32-let keyOptionName = "_option_name"
33-
34-let keyVotingStartHeight = "_startHeight"
35-
36-let keyVoteDuration = "_vote_duration"
37-
38-let farmingSWOPAddress = Address(base58'3PJPMPizTDqCfnuaKwXdXVb45Ff2SEFArsN')
39-
40-let keySWOPid = "SWOP_id"
41-
42-let SWOP = fromBase58String(getStringValue(farmingSWOPAddress, keySWOPid))
43-
44-let scaleValue = 100000000
45-
46-func throwNotEnoughSWOP () = throw("Not enough SWOP: userSWOPAmount - userTotalVoteAmount < voteSWOPAmount")
47-
48-
49-func getLastInterestInfo () = {
50- let lastInterest = valueOrElse(getInteger(this, keyLastInterest), 0)
51- lastInterest
52- }
53-
54-
55-func getUserSWOPAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPAmount)), 0)
56-
57-
58-func getUserSWOPClaimedAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPClaimedAmount)), 0)
59-
60-
61-func getUserInterestInfo (user,lastInterest) = {
62- let userSWOPAmount = getUserSWOPAmount(user)
63- let userLastInterest = getInteger(this, (toString(user) + keyUserLastInterest))
64- let userLastInterestValue = match userLastInterest {
65- case userLastInterest: Int =>
66- userLastInterest
67- case _ =>
68- lastInterest
69- }
70- $Tuple2(userLastInterestValue, userSWOPAmount)
71- }
72-
73-
74-func getTotalSWOPLocked () = valueOrElse(getInteger(this, keyTotalSWOPAmount), 0)
75-
76-
77-func getUserTotalVoteAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteTotalAmount)), 0)
78-
79-
80-func getUserVoteOptionAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteOptionAmount)), 0)
81-
82-
83-func getVotingStartHeight (voteName) = valueOrElse(getInteger(this, (voteName + keyVotingStartHeight)), 0)
84-
85-
86-func getVoteOptionAmount (user,voteName,option) = {
87- let userVoteOptionAmount = getInteger(this, (((voteName + option) + toString(user)) + keyUserVoteOptionAmount))
88- let uvoa = match userVoteOptionAmount {
89- case uvoa: Int =>
90- uvoa
91- case uvoa: Unit =>
92- 0
93- case _ =>
94- throw("Match error")
95- }
96- valueOrErrorMessage(uvoa, (((("No data on the key: " + voteName) + option) + toString(user)) + keyUserVoteOptionAmount))
97- }
98-
99-
100-func getVoteDuration (voteName) = valueOrErrorMessage(getInteger(this, (voteName + keyVoteDuration)), (("No data on the key: " + voteName) + keyVoteDuration))
101-
102-
103-func getTotalVoteOptionAmount (voteName,option) = {
104- let totalVoteOptionAmount = getInteger(this, ((voteName + option) + keyTotalVoteOptionAmount))
105- let tvoa = match totalVoteOptionAmount {
106- case tvoa: Int =>
107- tvoa
108- case tvoa: Unit =>
109- 0
110- case _ =>
111- throw("Match error")
112- }
113- tvoa
114- }
115-
116-
117-func getUserGetBackAmount (voteName,option,user,getBackSWOPHeight) = {
118- let key = ((((((voteName + "_") + option) + "_") + toString(user)) + "_") + toString(getBackSWOPHeight))
119- valueOrErrorMessage(getInteger(this, key), ("No data on the key: " + key))
120- }
121-
122-
123-func claimCalc (caller) = {
124- let shareTokenLocked = getTotalSWOPLocked()
125- let lastInterest = getLastInterestInfo()
126- let $t041514231 = getUserInterestInfo(caller, lastInterest)
127- let userLastInterest = $t041514231._1
128- let userSWOPAmount = $t041514231._2
129- let claimAmount = fraction(userSWOPAmount, (lastInterest - userLastInterest), scaleValue)
130- let userNewInterest = lastInterest
131- $Tuple2(userNewInterest, claimAmount)
132- }
133-
134-
135-@Callable(i)
136-func airDrop () = {
137- let $t044324507 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
138- let pmtAmount = $t044324507._1
139- let pmtAssetId = $t044324507._2
140- if ((pmtAssetId != SWOP))
141- then throw("Incorrect pmtAssetId")
142- else {
143- let totalSWOPAmount = getTotalSWOPLocked()
144- let totalSWOPAmountNew = (totalSWOPAmount + pmtAmount)
145- let lastInterest = getLastInterestInfo()
146- let interestNew = (lastInterest + fraction(pmtAmount, scaleValue, totalSWOPAmount))
147-[IntegerEntry(keyLastInterest, interestNew), IntegerEntry(keyTotalSWOPAmount, totalSWOPAmountNew)]
148- }
149- }
150-
151-
152-
153-@Callable(i)
154-func lockSWOP () = {
155- let $t050365111 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
156- let pmtAmount = $t050365111._1
157- let pmtAssetId = $t050365111._2
158- if ((pmtAssetId != SWOP))
159- then throw("Incorrect pmtAssetId")
160- else {
161- let lastInterest = getLastInterestInfo()
162- let $t052275309 = getUserInterestInfo(i.caller, lastInterest)
163- let userLastInterest = $t052275309._1
164- let userSWOPAmount = $t052275309._2
165- let claimAmount = fraction(userSWOPAmount, (lastInterest - userLastInterest), scaleValue)
166- let userSWOPAmountNew = ((userSWOPAmount + pmtAmount) + claimAmount)
167- let userNewInterest = lastInterest
168- let totalSWOPAmount = getTotalSWOPLocked()
169- let totalSWOPLockedNew = (totalSWOPAmount + pmtAmount)
170- let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
171- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
172-[IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPAmount), userSWOPAmountNew), IntegerEntry(keyTotalSWOPAmount, totalSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
173- }
174- }
175-
176-
177-
178-@Callable(i)
179-func withdrawSWOP (withdrawAmount) = {
180- let totalSWOPLocked = getTotalSWOPLocked()
181- let userSWOPamount = getUserSWOPAmount(i.caller)
182- let $t063116366 = claimCalc(i.caller)
183- let userNewInterest = $t063116366._1
184- let claimAmount = $t063116366._2
185- let userVoteAmount = getUserTotalVoteAmount(i.caller)
186- let availableFund = (userSWOPamount - userVoteAmount)
187- if ((withdrawAmount > availableFund))
188- then throw("withdrawAmount > availableFund")
189- else {
190- let totalSWOPLockedNew = (totalSWOPLocked - withdrawAmount)
191- let userSWOPamountNew = ((userSWOPamount + claimAmount) - withdrawAmount)
192- let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
193- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
194-[IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPAmount), userSWOPamountNew), IntegerEntry(keyTotalSWOPAmount, totalSWOPLockedNew), ScriptTransfer(i.caller, withdrawAmount, SWOP), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
195- }
196- }
197-
198-
199-
200-@Callable(i)
201-func claimAndWithdrawSWOP () = {
202- let totalSWOPLocked = getTotalSWOPLocked()
203- let lastInterest = getLastInterestInfo()
204- let $t074497504 = claimCalc(i.caller)
205- let userNewInterest = $t074497504._1
206- let claimAmount = $t074497504._2
207- let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
208- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
209- if ((claimAmount == 0))
210- then throw("You have 0 available SWOP")
211- else [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry(keyLastInterest, lastInterest), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, claimAmount, SWOP)]
212- }
213-
214-
215-
216-@Callable(i)
217-func claimAndStakeSWOP () = {
218- let totalSWOPLocked = getTotalSWOPLocked()
219- let lastInterest = getLastInterestInfo()
220- let $t082198274 = claimCalc(i.caller)
221- let userNewInterest = $t082198274._1
222- let claimAmount = $t082198274._2
223- let userVoteAmount = getUserTotalVoteAmount(i.caller)
224- let availableFund = ((getUserSWOPAmount(i.caller) + claimAmount) - userVoteAmount)
225- let totalSWOPLockedNew = totalSWOPLocked
226- let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
227- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
228- if ((claimAmount == 0))
229- then throw("You have 0 available SWOP")
230- else [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry(keyLastInterest, lastInterest), IntegerEntry(keyTotalSWOPAmount, totalSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPAmount), (availableFund + userVoteAmount)), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
231- }
232-
233-
1+# no script

github/deemru/w8io/3ef1775 
53.65 ms