tx · 7CwRLVhR9Q6EFgFrqxKve88pJS6FHDeFeZLvwnTAQ89F

3N2xV35dmGG8EYfhNfdKBPBq2xoSKHkmYxf:  -0.01000000 Waves

2022.05.18 10:27 [2056792] smart account 3N2xV35dmGG8EYfhNfdKBPBq2xoSKHkmYxf > SELF 0.00000000 Waves

{ "type": 13, "id": "7CwRLVhR9Q6EFgFrqxKve88pJS6FHDeFeZLvwnTAQ89F", "fee": 1000000, "feeAssetId": null, "timestamp": 1652858837586, "version": 2, "chainId": 84, "sender": "3N2xV35dmGG8EYfhNfdKBPBq2xoSKHkmYxf", "senderPublicKey": "9F6gZRAntXCZwkaxqm21ELyF2oCxcX1947Aazo7nMLYG", "proofs": [ "4Lnz2JDhtmoVpAJd2AT1dFewDvNbHsR2ag4pdM6smWMGVixL1tUH4ATQ1JvcXRwm5iXVFoxhyPf1mvUEVoq9gkgD" ], "script": "base64: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", "height": 2056792, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CCYd258pt2aRF3K4VbwY7crYTms3FQuuBL9NukjtGcmJ Next: 8NXYWXDLpyYDKsw1hnnU52aR8G4NsH8rYeDxXUoUFb3F Diff:
OldNewDifferences
66 let REWARD_ASSET = base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh'
77
88 let REWARD_POOL = Address(base58'3NBZraoFBG4i6YVuAtcAwTEDwsfEcLh9bSv')
9+
10+let CONTRACT = Address(base58'3N9K49ZpyQLL9gJjVdxQhu37f8YZdAzakR1')
911
1012 func isPaymentOk (i) = {
1113 let acceptableAssetId = PAYMENT_ASSET
2628
2729
2830 @Callable(i)
31+func rewardPool (data) = {
32+ let currentKey = toBase58String(i.caller.bytes)
33+ if ((currentKey == toString(CONTRACT)))
34+ then [StringEntry("reward_pool", data)]
35+ else throw("you are not allowed")
36+ }
37+
38+
39+
40+@Callable(i)
2941 func stakePixels () = {
3042 let currentKey = toBase58String(i.caller.bytes)
3143 if (isPaymentOk(i))
4153
4254
4355 @Callable(i)
44-func withdrawPixels (paymentAmount) = throw("withdrawl")
56+func withdrawPixels (requestedAmount) = {
57+ let amount = valueOrElse(requestedAmount, 0)
58+ if ((amount > 0))
59+ then throw("a")
60+ else throw("nothing to withdraw")
61+ }
4562
4663
4764
4966 func claim (claimAmount) = {
5067 let currentKey = toBase58String(i.caller.bytes)
5168 let wallet = (currentKey + "_share")
69+ let claim_amount = valueOrElse(claimAmount, 0)
5270 let getShare = valueOrErrorMessage(getInteger(this, wallet), "nothing to claim")
5371 let POOL_BALANCE = valueOrErrorMessage(assetBalance(REWARD_POOL, REWARD_ASSET), "reward pool is empty!")
54- throw(toString(POOL_BALANCE))
72+ if (if ((POOL_BALANCE >= claim_amount))
73+ then (getShare >= claim_amount)
74+ else false)
75+ then throw("sie")
76+ else throw(toString(POOL_BALANCE))
5577 }
5678
5779
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let PAYMENT_ASSET = base58'43W4FcqA1rEpSmUGHoGiXvpSLfhadws9LS5j3SJsKxxS'
55
66 let REWARD_ASSET = base58'CgidgEMbCKXXErgJXVyZCFRaK8SBNA73Jg8mNXALtVKh'
77
88 let REWARD_POOL = Address(base58'3NBZraoFBG4i6YVuAtcAwTEDwsfEcLh9bSv')
9+
10+let CONTRACT = Address(base58'3N9K49ZpyQLL9gJjVdxQhu37f8YZdAzakR1')
911
1012 func isPaymentOk (i) = {
1113 let acceptableAssetId = PAYMENT_ASSET
1214 if ((size(i.payments) == 0))
1315 then throw("Payment not attached")
1416 else {
1517 let p = i.payments[0]
1618 match p.assetId {
1719 case assetId: ByteVector =>
1820 if ((assetId == acceptableAssetId))
1921 then (p.amount == 100000)
2022 else false
2123 case _ =>
2224 throw("Wrong payment asset or min amount 0.0001")
2325 }
2426 }
2527 }
2628
2729
2830 @Callable(i)
31+func rewardPool (data) = {
32+ let currentKey = toBase58String(i.caller.bytes)
33+ if ((currentKey == toString(CONTRACT)))
34+ then [StringEntry("reward_pool", data)]
35+ else throw("you are not allowed")
36+ }
37+
38+
39+
40+@Callable(i)
2941 func stakePixels () = {
3042 let currentKey = toBase58String(i.caller.bytes)
3143 if (isPaymentOk(i))
3244 then {
3345 let wallet = (currentKey + "_share")
3446 let getShare = valueOrElse(getInteger(this, wallet), 0)
3547 let total = (getShare + i.payments[0].amount)
3648 [IntegerEntry(wallet, total)]
3749 }
3850 else throw("Wrong payment amount or asset")
3951 }
4052
4153
4254
4355 @Callable(i)
44-func withdrawPixels (paymentAmount) = throw("withdrawl")
56+func withdrawPixels (requestedAmount) = {
57+ let amount = valueOrElse(requestedAmount, 0)
58+ if ((amount > 0))
59+ then throw("a")
60+ else throw("nothing to withdraw")
61+ }
4562
4663
4764
4865 @Callable(i)
4966 func claim (claimAmount) = {
5067 let currentKey = toBase58String(i.caller.bytes)
5168 let wallet = (currentKey + "_share")
69+ let claim_amount = valueOrElse(claimAmount, 0)
5270 let getShare = valueOrErrorMessage(getInteger(this, wallet), "nothing to claim")
5371 let POOL_BALANCE = valueOrErrorMessage(assetBalance(REWARD_POOL, REWARD_ASSET), "reward pool is empty!")
54- throw(toString(POOL_BALANCE))
72+ if (if ((POOL_BALANCE >= claim_amount))
73+ then (getShare >= claim_amount)
74+ else false)
75+ then throw("sie")
76+ else throw(toString(POOL_BALANCE))
5577 }
5678
5779

github/deemru/w8io/873ac7e 
25.98 ms