tx · CYy63VnAypAF3b5pZ8z519QnAEbszw9LfHZ2H2bsoVpf

3NCzUsFn22SqL6SiuFpRSo8VRj6XpBzNCTK:  -0.00700000 Waves

2022.06.27 18:06 [2115000] smart account 3NCzUsFn22SqL6SiuFpRSo8VRj6XpBzNCTK > SELF 0.00000000 Waves

{ "type": 13, "id": "CYy63VnAypAF3b5pZ8z519QnAEbszw9LfHZ2H2bsoVpf", "fee": 700000, "feeAssetId": null, "timestamp": 1656342427479, "version": 2, "chainId": 84, "sender": "3NCzUsFn22SqL6SiuFpRSo8VRj6XpBzNCTK", "senderPublicKey": "8tc6RQVnwQMdDY1k9GxP7EvBttrJT2a6GeBMQHEsKnW7", "proofs": [ "4naeHNbzvU5sy19f7CfuQUyGRaLWVaDZHC14M1c1QH7DP3EZFDYZ1XLNoEkM3YGw5T459mL64KCW6UxVwRak1xVX" ], "script": "base64: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", "height": 2115000, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BGe87eAkHcUFE99gP7ghCLu9FG8XFVFkNtjAF9CWTzB1 Next: DafW58V8Gr194oihEvd2aNtke9hVd3AXVorqUsNfnKDw Diff:
OldNewDifferences
2323 let assetId = fromBase58String(getStr((farm + "_id")))
2424 let dApp = getStr((farm + "_st"))
2525 let balance = assetBalance(this, assetId)
26- if ((amount == -1))
27- then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, balance)])
28- else if ((balance >= amount))
29- then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, amount)])
30- else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount)))
26+ if ((balance == 0))
27+ then throw("Zero balance")
28+ else if ((amount == -1))
29+ then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, balance)])
30+ else if ((balance >= amount))
31+ then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, amount)])
32+ else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount)))
3133 }
3234
3335
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)
26- if ((amount == -1))
27- then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, balance)])
28- else if ((balance >= amount))
29- then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, amount)])
30- else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount)))
26+ if ((balance == 0))
27+ then throw("Zero balance")
28+ else if ((amount == -1))
29+ then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, balance)])
30+ else if ((balance >= amount))
31+ then invoke(Address(fromBase58String(dApp)), "stakeFarmTokens", [false], [AttachedPayment(assetId, amount)])
32+ else throw(((("Low balance: " + toString(balance)) + " and need: ") + toString(amount)))
3133 }
3234
3335
3436 func check (pbk) = {
3537 let pbk_st = toBase58String(pbk)
3638 let points = getStringValue("points")
3739 contains(points, pbk_st)
3840 }
3941
4042
4143 func iter (acc,farm) = {
4244 let rez = stake(farm, -1)
4345 match rez {
4446 case t: ScriptTransfer =>
4547 (acc ++ [rez])
4648 case _ =>
4749 acc
4850 }
4951 }
5052
5153
5254 @Callable(i)
5355 func StakeAll () = if (check(i.callerPublicKey))
5456 then {
5557 let $l = farms
5658 let $s = size($l)
5759 let $acc0 = nil
5860 func $f0_1 ($a,$i) = if (($i >= $s))
5961 then $a
6062 else iter($a, $l[$i])
6163
6264 func $f0_2 ($a,$i) = if (($i >= $s))
6365 then $a
6466 else throw("List size exceeds 3")
6567
6668 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
6769 }
6870 else throw("Private Farm. Access prohibited!")
6971
7072
7173
7274 @Callable(i)
7375 func UnstakeAll () = if (check(i.callerPublicKey))
7476 then throw("Welcome")
7577 else throw("Private Farm. Access prohibited!")
7678
7779
7880
7981 @Callable(i)
8082 func ClaimAll () = if (check(i.callerPublicKey))
8183 then throw("Welcome")
8284 else throw("Private Farm. Access prohibited!")
8385
8486
8587 @Verifier(tx)
8688 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
8789

github/deemru/w8io/169f3d6 
37.33 ms