tx · 5WoyqpqANQrx3RvLtdDpwc8BD45ifKxG6ifs368Pribw

3N1kdSFBBitRyEbeQUg3f5DbvXtX2ZKRMiK:  -0.01000000 Waves

2022.03.31 02:13 [1987300] smart account 3N1kdSFBBitRyEbeQUg3f5DbvXtX2ZKRMiK > SELF 0.00000000 Waves

{ "type": 13, "id": "5WoyqpqANQrx3RvLtdDpwc8BD45ifKxG6ifs368Pribw", "fee": 1000000, "feeAssetId": null, "timestamp": 1648682014737, "version": 2, "chainId": 84, "sender": "3N1kdSFBBitRyEbeQUg3f5DbvXtX2ZKRMiK", "senderPublicKey": "DdhyEEzQFx6gFJTjhWxhpiSMV2agMDrDGVDi5P1QmsH1", "proofs": [ "3tdtHfpFi1GjUp2RJmtP5JsY3Cc2b1E6Xgx6HV7HhoicPTwboGjeDsWqTZRxgM2k2Vv9JQa4LUZYDg3DFPb6y2CL" ], "script": "base64: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", "height": 1987300, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "init"
5+
6+let b = "assetId"
7+
8+let c = "staked_total"
9+
10+func d (e) = e
11+
12+
13+let f = valueOrElse(getBoolean(this, a), false)
14+
15+let g = fromBase58String(getStringValue(this, b))
16+
17+let h = valueOrErrorMessage(getInteger(this, c), (("Can't read field '" + c) + "'"))
18+
19+func i (j) = if ((size(j) != 1))
20+ then throw("Single payment required")
21+ else if ((j[0].assetId != g))
22+ then throw("Payment should be in REDS token")
23+ else if ((0 >= j[0].amount))
24+ then throw("Payment amount must be greater then 0")
25+ else j[0].amount
26+
27+
28+func k (l) = valueOrElse(getInteger(this, d(l)), 0)
29+
30+
31+@Callable(m)
32+func init (n) = {
33+ let o = valueOrErrorMessage(assetInfo(fromBase58String(n)), "Can't find asset").id
34+ if (f)
35+ then throw("DApp is already init")
36+ else [StringEntry("assetId", toBase58String(o))]
37+ }
38+
39+
40+
41+@Callable(m)
42+func stake () = {
43+ let p = toString(m.caller)
44+ let q = i(m.payments)
45+ let r = k(p)
46+[IntegerEntry(d(p), (r + q)), IntegerEntry(c, (h + q))]
47+ }
48+
49+
50+
51+@Callable(m)
52+func withdraw (s) = {
53+ let p = toString(m.caller)
54+ let t = k(p)
55+ if ((size(m.payments) != 0))
56+ then throw("There should be no payments for this function")
57+ else if ((0 >= s))
58+ then throw("Amount must be positive")
59+ else if ((s > h))
60+ then throw("You cannot withdraw more funds than total staked on the dApp")
61+ else if ((s > t))
62+ then throw("You don't have enough staked funds available to withdraw")
63+ else [if ((s == t))
64+ then DeleteEntry(d(p))
65+ else IntegerEntry(d(p), (t - s)), IntegerEntry(c, (h - s)), ScriptTransfer(m.caller, s, g)]
66+ }
67+
68+

github/deemru/w8io/03bedc9 
16.55 ms