tx · J7y1yAku4bVWHWGktE21QGsWY8JNsp8PA4Ru6wjkSsTc

3NCzUsFn22SqL6SiuFpRSo8VRj6XpBzNCTK:  -0.00900000 Waves

2022.06.27 19:06 [2115059] smart account 3NCzUsFn22SqL6SiuFpRSo8VRj6XpBzNCTK > SELF 0.00000000 Waves

{ "type": 13, "id": "J7y1yAku4bVWHWGktE21QGsWY8JNsp8PA4Ru6wjkSsTc", "fee": 900000, "feeAssetId": null, "timestamp": 1656346012568, "version": 2, "chainId": 84, "sender": "3NCzUsFn22SqL6SiuFpRSo8VRj6XpBzNCTK", "senderPublicKey": "8tc6RQVnwQMdDY1k9GxP7EvBttrJT2a6GeBMQHEsKnW7", "proofs": [ "azvFCLJpPKuPxMdDctBx9Uj2YoZk9mstu6VKxzNdub874XqMGHbMDfX4CB7zmC5xixVCkSKYifWXAfST66JR2hV" ], "script": "base64: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", "height": 2115059, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AXHFfVW6daH2YjMeXM5CNKHUHsv6Kg7fhn9cecgGY7Hi Next: 6n8xxwoN5cu5DJQQ77kUaFKvF7y7nvhv1zkcEHonAHGA Diff:
OldNewDifferences
3131 }
3232
3333
34+func unstake (farm,amount) = {
35+ let assetId = fromBase58String(getStr((farm + "_id")))
36+ let dApp = getStr((farm + "_st"))
37+ let balance = assetBalance(this, assetId)
38+ if ((amount == -1))
39+ then invoke(Address(fromBase58String(dApp)), "withdrawFarmTokens", [false], [AttachedPayment(assetId, balance)])
40+ else if ((balance >= amount))
41+ then invoke(Address(fromBase58String(dApp)), "withdrawFarmTokens", [false], [AttachedPayment(assetId, amount)])
42+ else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount)))
43+ }
44+
45+
3446 func check (pbk) = {
3547 let pbk_st = toBase58String(pbk)
3648 let points = getStringValue("points")
4052
4153 func iterStake (acc,farm) = {
4254 let rez = stake(farm, -1)
55+ match rez {
56+ case t: ScriptTransfer =>
57+ (acc ++ [rez])
58+ case _ =>
59+ acc
60+ }
61+ }
62+
63+
64+func iterUnstake (acc,farm) = {
65+ let rez = unstake(farm, -1)
4366 match rez {
4467 case t: ScriptTransfer =>
4568 (acc ++ [rez])
7194
7295 @Callable(i)
7396 func UnstakeAll () = if (check(i.callerPublicKey))
74- then throw("Welcome")
97+ then {
98+ let $l = farms
99+ let $s = size($l)
100+ let $acc0 = nil
101+ func $f0_1 ($a,$i) = if (($i >= $s))
102+ then $a
103+ else iterUnstake($a, $l[$i])
104+
105+ func $f0_2 ($a,$i) = if (($i >= $s))
106+ then $a
107+ else throw("List size exceeds 3")
108+
109+ $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
110+ }
75111 else throw("Private Farm. Access prohibited!")
76112
77113
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let farms = ["beta", "meta", "zeta"]
55
66 func getStr (key) = match getString(this, key) {
77 case b: String =>
88 b
99 case _ =>
1010 ""
1111 }
1212
1313
1414 func getInt (key) = match getInteger(this, key) {
1515 case b: Int =>
1616 b
1717 case _ =>
1818 0
1919 }
2020
2121
2222 func stake (farm,amount) = {
2323 let assetId = fromBase58String(getStr((farm + "_id")))
2424 let dApp = getStr((farm + "_st"))
2525 let balance = assetBalance(this, assetId)
2626 if ((amount == -1))
2727 then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, balance)])
2828 else if ((balance >= amount))
2929 then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, amount)])
3030 else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount)))
3131 }
3232
3333
34+func unstake (farm,amount) = {
35+ let assetId = fromBase58String(getStr((farm + "_id")))
36+ let dApp = getStr((farm + "_st"))
37+ let balance = assetBalance(this, assetId)
38+ if ((amount == -1))
39+ then invoke(Address(fromBase58String(dApp)), "withdrawFarmTokens", [false], [AttachedPayment(assetId, balance)])
40+ else if ((balance >= amount))
41+ then invoke(Address(fromBase58String(dApp)), "withdrawFarmTokens", [false], [AttachedPayment(assetId, amount)])
42+ else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount)))
43+ }
44+
45+
3446 func check (pbk) = {
3547 let pbk_st = toBase58String(pbk)
3648 let points = getStringValue("points")
3749 contains(points, pbk_st)
3850 }
3951
4052
4153 func iterStake (acc,farm) = {
4254 let rez = stake(farm, -1)
55+ match rez {
56+ case t: ScriptTransfer =>
57+ (acc ++ [rez])
58+ case _ =>
59+ acc
60+ }
61+ }
62+
63+
64+func iterUnstake (acc,farm) = {
65+ let rez = unstake(farm, -1)
4366 match rez {
4467 case t: ScriptTransfer =>
4568 (acc ++ [rez])
4669 case _ =>
4770 acc
4871 }
4972 }
5073
5174
5275 @Callable(i)
5376 func StakeAndClaimAll () = if (check(i.callerPublicKey))
5477 then {
5578 let $l = farms
5679 let $s = size($l)
5780 let $acc0 = nil
5881 func $f0_1 ($a,$i) = if (($i >= $s))
5982 then $a
6083 else iterStake($a, $l[$i])
6184
6285 func $f0_2 ($a,$i) = if (($i >= $s))
6386 then $a
6487 else throw("List size exceeds 3")
6588
6689 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
6790 }
6891 else throw("Private Farm. Access prohibited!")
6992
7093
7194
7295 @Callable(i)
7396 func UnstakeAll () = if (check(i.callerPublicKey))
74- then throw("Welcome")
97+ then {
98+ let $l = farms
99+ let $s = size($l)
100+ let $acc0 = nil
101+ func $f0_1 ($a,$i) = if (($i >= $s))
102+ then $a
103+ else iterUnstake($a, $l[$i])
104+
105+ func $f0_2 ($a,$i) = if (($i >= $s))
106+ then $a
107+ else throw("List size exceeds 3")
108+
109+ $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
110+ }
75111 else throw("Private Farm. Access prohibited!")
76112
77113
78114 @Verifier(tx)
79115 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
80116

github/deemru/w8io/c3f4982 
29.85 ms