tx · G6DNHuSSJRW2Zay4TBLAT9g3fmwGKkhDaTMESQ43rKDK

3P4YjN8nzgNTQXivKuiiZQRDyScbx5gM5pQ:  -0.01000000 Waves

2022.01.10 15:53 [2937926] smart account 3P4YjN8nzgNTQXivKuiiZQRDyScbx5gM5pQ > SELF 0.00000000 Waves

{ "type": 13, "id": "G6DNHuSSJRW2Zay4TBLAT9g3fmwGKkhDaTMESQ43rKDK", "fee": 1000000, "feeAssetId": null, "timestamp": 1641819189218, "version": 2, "chainId": 87, "sender": "3P4YjN8nzgNTQXivKuiiZQRDyScbx5gM5pQ", "senderPublicKey": "Aa5tsh5uzQYAYpDYswmQko1c79PSYLrGbwRZ5sBViNx5", "proofs": [ "rtHhLYfRXsJmRjfS1n1nAo39yaAd6poQXr1EpvUyuqW3uFKf7KYZe1kXiG2xbjCubEyKGutTr3XvFypmcZ7RcdR" ], "script": "base64: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", "height": 2937926, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: A8DznYdD2YCa3HZsWyg8T7UaFWBoXfpDfMpU6fXgNUAV Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let publicKey = base58'Aa5tsh5uzQYAYpDYswmQko1c79PSYLrGbwRZ5sBViNx5'
5+
6+let dAppAddress = Address(base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV')
7+
8+let rewardAssetId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
9+
10+let giveawayAssetId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
11+
12+let wxLockAddress = Address(base58'3PJL8Hn8LACaSBWLQ3UVhctA5cTQLBFwBAP')
13+
14+let feeAddress = Address(base58'3PH8NXNHpYR5gLn3cwtqnvmKVwQQWb7FrwY')
15+
16+@Callable(i)
17+func stakeLP () = {
18+ let callerAddressString = toString(i.caller)
19+ let isWhitelisted = valueOrElse(getBoolean((callerAddressString + "_whitelisted")), false)
20+ let lpAssetId = valueOrElse(getString((callerAddressString + "_assetId")), "")
21+ if (if (if (if (isWhitelisted)
22+ then (size(i.payments) == 1)
23+ else false)
24+ then (i.payments[0].amount > 0)
25+ else false)
26+ then (i.payments[0].assetId == fromBase58String(lpAssetId))
27+ else false)
28+ then {
29+ let stakeLPCall = invoke(dAppAddress, "stake", nil, [AttachedPayment(i.payments[0].assetId, i.payments[0].amount)])
30+ if ((stakeLPCall == stakeLPCall))
31+ then {
32+ let balance = (valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_balance")), 0) + i.payments[0].amount)
33+ $Tuple2([IntegerEntry((((callerAddressString + "_") + lpAssetId) + "_balance"), balance)], unit)
34+ }
35+ else throw("Strict value is not equal to itself.")
36+ }
37+ else throw("")
38+ }
39+
40+
41+
42+@Callable(i)
43+func unstakeLP (amount) = {
44+ let callerAddressString = toString(i.caller)
45+ let isWhitelisted = valueOrElse(getBoolean((callerAddressString + "_whitelisted")), false)
46+ if (isWhitelisted)
47+ then {
48+ let lpAssetId = valueOrElse(getString((callerAddressString + "_assetId")), "")
49+ let unstakeLPCall = invoke(dAppAddress, "unstake", [lpAssetId, amount], nil)
50+ if ((unstakeLPCall == unstakeLPCall))
51+ then {
52+ let balance = (valueOrElse(getInteger((((callerAddressString + "_") + lpAssetId) + "_balance")), 0) - amount)
53+ $Tuple2([ScriptTransfer(i.caller, amount, fromBase58String(lpAssetId)), IntegerEntry((((callerAddressString + "_") + lpAssetId) + "_balance"), balance)], unit)
54+ }
55+ else throw("Strict value is not equal to itself.")
56+ }
57+ else throw("")
58+ }
59+
60+
61+
62+@Callable(i)
63+func claim () = {
64+ let callerAddressString = toString(i.caller)
65+ let isWhitelisted = valueOrElse(getBoolean((callerAddressString + "_whitelisted")), false)
66+ if (isWhitelisted)
67+ then {
68+ let lpAssetId = valueOrElse(getString((callerAddressString + "_assetId")), "")
69+ let wxBalance = assetBalance(this, rewardAssetId)
70+ if ((wxBalance == wxBalance))
71+ then {
72+ let claimWXCall = invoke(dAppAddress, "claimWx", [lpAssetId], nil)
73+ if ((claimWXCall == claimWXCall))
74+ then {
75+ let claimedWXAmount = (assetBalance(this, rewardAssetId) - wxBalance)
76+ if ((claimedWXAmount == claimedWXAmount))
77+ then {
78+ let totalClaimedWXPool = (valueOrElse(getInteger((lpAssetId + "_total_claimed_wx")), 0) + claimedWXAmount)
79+ let totalClaimedWX = (valueOrElse(getInteger(this, "total_claimed_wx"), 0) + claimedWXAmount)
80+ let feeRate = getIntegerValue(this, "fee")
81+ let fee = fraction(claimedWXAmount, feeRate, 100)
82+ let totalCollectedFeePool = (valueOrElse(getInteger((lpAssetId + "_total_collected_fee")), 0) + fee)
83+ let totalCollectedFee = (valueOrElse(getInteger("total_collected_fee"), 0) + fee)
84+ $Tuple2([ScriptTransfer(i.caller, (claimedWXAmount - fee), rewardAssetId), ScriptTransfer(feeAddress, fee, rewardAssetId), IntegerEntry((lpAssetId + "_total_claimed_wx"), totalClaimedWXPool), IntegerEntry("total_claimed_wx", totalClaimedWX), IntegerEntry((lpAssetId + "_total_collected_fee"), totalCollectedFeePool), IntegerEntry("total_collected_fee", totalCollectedFee)], unit)
85+ }
86+ else throw("Strict value is not equal to itself.")
87+ }
88+ else throw("Strict value is not equal to itself.")
89+ }
90+ else throw("Strict value is not equal to itself.")
91+ }
92+ else throw("")
93+ }
94+
95+
96+
97+@Callable(i)
98+func whitelist (whitelistAddress,assetId) = if ((i.callerPublicKey == publicKey))
99+ then $Tuple2([BooleanEntry((whitelistAddress + "_whitelisted"), true), StringEntry((whitelistAddress + "_assetId"), assetId)], unit)
100+ else throw("")
101+
102+
103+
104+@Callable(i)
105+func setFee (fee) = if ((i.callerPublicKey == publicKey))
106+ then $Tuple2([IntegerEntry("fee", fee)], unit)
107+ else throw("")
108+
109+
110+
111+@Callable(i)
112+func giveaway () = {
113+ let callerAddressString = toString(i.caller)
114+ let isWhitelisted = valueOrElse(getBoolean((callerAddressString + "_whitelisted")), false)
115+ if (if (if (if (isWhitelisted)
116+ then (size(i.payments) == 1)
117+ else false)
118+ then (i.payments[0].assetId == giveawayAssetId)
119+ else false)
120+ then (i.payments[0].amount > 0)
121+ else false)
122+ then {
123+ let wxLockCall = invoke(wxLockAddress, "increaseLock", [0], [AttachedPayment(giveawayAssetId, i.payments[0].amount)])
124+ if ((wxLockCall == wxLockCall))
125+ then {
126+ let totalLockedWX = (valueOrElse(getInteger("total_locked_wx"), 0) + i.payments[0].amount)
127+ $Tuple2([IntegerEntry("total_locked_wx", totalLockedWX)], unit)
128+ }
129+ else throw("Strict value is not equal to itself.")
130+ }
131+ else throw("")
132+ }
133+
134+
135+
136+@Callable(i)
137+func increaseLockDuration (duration) = if ((i.callerPublicKey == publicKey))
138+ then {
139+ let increaseLockDurationCall = invoke(wxLockAddress, "increaseLock", [duration], nil)
140+ if ((increaseLockDurationCall == increaseLockDurationCall))
141+ then {
142+ let lockDuration = (valueOrElse(getInteger("lock_duration"), 0) + duration)
143+ $Tuple2([IntegerEntry("lock_duration", lockDuration)], unit)
144+ }
145+ else throw("Strict value is not equal to itself.")
146+ }
147+ else throw("")
148+
149+
150+
151+@Callable(i)
152+func forYou () = {
153+ let started = match getInteger(this, "it_all_started_in_this_block") {
154+ case yep: Int =>
155+ true
156+ case nope: Unit =>
157+ false
158+ case _ =>
159+ throw("Match error")
160+ }
161+ if (if ((i.callerPublicKey == publicKey))
162+ then !(started)
163+ else false)
164+ then {
165+ let firstLock = invoke(wxLockAddress, "lock", [2102400], [AttachedPayment(i.payments[0].assetId, i.payments[0].amount)])
166+ if ((firstLock == firstLock))
167+ then $Tuple2([IntegerEntry("it_all_started_in_this_block", height), IntegerEntry("total_locked_wx", i.payments[0].amount), IntegerEntry("lock_duration", 2102400)], unit)
168+ else throw("Strict value is not equal to itself.")
169+ }
170+ else throw("")
171+ }
172+
173+
174+@Verifier(tx)
175+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
176+

github/deemru/w8io/6500d08 
58.93 ms