2022.02.14 18:16 [2988542] smart account 3PGHgV42rDxknn1RBMQcwfAYZHjHYGxna7P > SELF 0.00000000 Waves

{ "type": 13, "id": "CYgqdgnWGQ88pPLpZLNAnymUHNeHU3CLBFe38Nkzjwhe", "fee": 1000000, "feeAssetId": null, "timestamp": 1644851773303, "version": 1, "sender": "3PGHgV42rDxknn1RBMQcwfAYZHjHYGxna7P", "senderPublicKey": "v1cNv62NYuVFBN4MhKbAoZ94Mfh4pj7Tu2LKfJnuFJn", "proofs": [ "4aN7WjWZHEuZT6Fx9Agu2mF2hhrGy7X1bv62iLBr7jcFYo3mdHjLMoB6g6WGUGZ6Uu45DqdU12doP2oKAWoEin9d" ], "script": "base64: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", "chainId": 87, "height": 2988542, "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+func writeConstString (key,value) = if (!(isDefined(getString(this, key))))
5+ then StringEntry(key, value)
6+ else throw(("already initialized: " + key))
7+
8+
9+let reserve = valueOrErrorMessage(getString(this, "reserve"), "waves-staker: no reserve")
10+
11+let node = valueOrErrorMessage(getString(this, "node"), "no node")
12+
13+let activeLeaseAmount = valueOrElse(getInteger(this, "activeLeaseAmount"), 0)
14+
15+let activeLeaseId = valueOrElse(getString(this, "activeLeaseId"), "")
16+
17+func updateLease (newAmt) = {
18+ let newLease = Lease(addressFromStringValue(node), newAmt)
19+ let newLeaseId = calculateLeaseId(newLease)
20+ ((if ((activeLeaseId != ""))
21+ then [LeaseCancel(fromBase58String(activeLeaseId))]
22+ else nil) ++ (if ((newAmt > 0))
23+ then [newLease, StringEntry("activeLeaseId", toBase58String(newLeaseId)), IntegerEntry("activeLeaseAmount", newAmt)]
24+ else [StringEntry("activeLeaseId", ""), IntegerEntry("activeLeaseAmount", 0)]))
25+ }
26+
27+
28+@Callable(i)
29+func initialize (reserve,node) = [writeConstString("reserve", reserve), writeConstString("node", node)]
30+
31+
32+
33+@Callable(i)
34+func put () = if ((toString(i.caller) != reserve))
35+ then throw("reserve only")
36+ else if ((i.payments[0].assetId != unit))
37+ then throw("waves only")
38+ else {
39+ let addedAmount = i.payments[0].amount
40+ updateLease((activeLeaseAmount + addedAmount))
41+ }
42+
43+
44+
45+@Callable(i)
46+func get (removedAmount) = if ((toString(i.caller) != reserve))
47+ then throw("reserve only")
48+ else if ((0 > removedAmount))
49+ then throw("pulling negative amount")
50+ else (updateLease((activeLeaseAmount - removedAmount)) ++ [ScriptTransfer(i.caller, removedAmount, unit)])
51+
52+

github/deemru/w8io/786bc32 
32.15 ms