tx · 77vfVgnMtQxXym3ivrSaZK64MownKy3ccfB2sGVuvi5Z

3Mw8tYHr6ZSwhW7Vb4upkz9BmtwAaesyABN:  -0.01400002 Waves

2019.12.30 23:09 [832296] smart account 3Mw8tYHr6ZSwhW7Vb4upkz9BmtwAaesyABN > SELF 0.00000000 Waves

{ "type": 13, "id": "77vfVgnMtQxXym3ivrSaZK64MownKy3ccfB2sGVuvi5Z", "fee": 1400002, "feeAssetId": null, "timestamp": 1577736186810, "version": 1, "sender": "3Mw8tYHr6ZSwhW7Vb4upkz9BmtwAaesyABN", "senderPublicKey": "EG5aKFsRz85yVbUg6tzA8JuDdp1axUrvu4ibM4EUM55U", "proofs": [ "32aYzZHnju5khU6XF11AWpeaGQqBw6uyYCXtoDyZv9g5J8MJZ5V9xU6HWueDBTbW7zPrQMnZdhGNAjHeWWsfNqEh" ], "script": "base64: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", "chainId": 84, "height": 832296, "spentComplexity": 0 } View: original | compacted Prev: none Next: 5pSUd8hyQSPtS4rvF39Rjwhgkcg7mMBDX75tWRsDEicR Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let rewardPercentPerMonth = 3000
5+
6+let assetID = base58'Ecds5eCAmKgcqohZ4XFSZSBBHdiezu5oeUphpCcP48TR'
7+
8+@Callable(i)
9+func getReward () = {
10+ let stakingBalance = match getInteger(this, (toString(i.caller) + "_stakingBalance")) {
11+ case a: Int =>
12+ a
13+ case _ =>
14+ 0
15+ }
16+ let stakingHeight = match getInteger(this, (toString(i.caller) + "_stakingHeight")) {
17+ case a: Int =>
18+ a
19+ case _ =>
20+ 0
21+ }
22+ let reward = (((((((height - stakingHeight) / 60) / 24) / 30) / rewardPercentPerMonth) / 100) * stakingBalance)
23+ ScriptResult(WriteSet([DataEntry((toString(i.caller) + "_stakingHeight"), height)]), TransferSet([ScriptTransfer(i.caller, reward, assetID)]))
24+ }
25+
26+
27+
28+@Callable(i)
29+func staking (referalAdress) = {
30+ let referalPercent = 5
31+ let pmt = extract(i.payment)
32+ if ((pmt.assetId != assetID))
33+ then throw("Стейковать можно только монеты")
34+ else {
35+ let stakingBalance = match getInteger(this, (toString(i.caller) + "_stakingBalance")) {
36+ case a: Int =>
37+ a
38+ case _ =>
39+ 0
40+ }
41+ ScriptResult(WriteSet([DataEntry((toString(i.caller) + "_stakingBalance"), (pmt.amount + stakingBalance)), DataEntry((toString(i.caller) + "_stakingHeight"), height)]), TransferSet([ScriptTransfer(addressFromStringValue(referalAdress), ((pmt.amount / 100) * referalPercent), assetID)]))
42+ }
43+ }
44+
45+

github/deemru/w8io/026f985 
16.79 ms