tx · AkF73KK6i9zsbEBPSmeaJLpXA9cZ3XEsmjL883SNgvs4

3Msughfkwji8uccY4RAxuKWvNpnEscWyhHK:  -0.01000000 Waves

2019.06.21 19:21 [552005] smart account 3Msughfkwji8uccY4RAxuKWvNpnEscWyhHK > SELF 0.00000000 Waves

{ "type": 13, "id": "AkF73KK6i9zsbEBPSmeaJLpXA9cZ3XEsmjL883SNgvs4", "fee": 1000000, "feeAssetId": null, "timestamp": 1561134116898, "version": 1, "sender": "3Msughfkwji8uccY4RAxuKWvNpnEscWyhHK", "senderPublicKey": "AzyC6W7iD5HYehj2xef6xWKogmxDC6RaX9N1ST8P39bn", "proofs": [ "ZuUbgk9SoBcRvqJYeFqny5dN1zWx6vQeMFcZWek4fjBAiYy7khsyq25Uk3vTJPoyT8MbWFjdBRFQMRgkxRjuMrV" ], "script": "base64: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", "chainId": 84, "height": 552005, "spentComplexity": 0 } View: original | compacted Prev: none Next: 7W7izueMUAiQjnFEGNDz9vP7q5UXGeNWHsVTUoXSyiRu Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let level1 = 5
5+
6+let level2 = 5
7+
8+let level3 = 5
9+
10+let cashBack = 5
11+
12+func balanceIncrement (address,inc) = {
13+ let balanceKey = (address + "_balance")
14+ DataEntry(balanceKey, (inc + match getInteger(this, balanceKey) {
15+ case b: Int =>
16+ b
17+ case _ =>
18+ 0
19+ }))
20+ }
21+
22+
23+func indexBalanceIncrement (address,owner,inc,level) = {
24+ let logKey = (address + level)
25+ let recordData = (owner + toString(inc))
26+ match getString(this, logKey) {
27+ case prev: String =>
28+ DataEntry(logKey, ((prev + ",") + recordData))
29+ case _ =>
30+ DataEntry(logKey, recordData)
31+ }
32+ }
33+
34+
35+func getReferer (user) = getString(this, (user + "_referer"))
36+
37+
38+@Callable(i)
39+func fund () = {
40+ let owner = toBase58String(i.callerPublicKey)
41+ let ownerColon = (((owner + ":") + toString(height)) + ":")
42+ let amount = extract(i.payment).amount
43+ WriteSet( match getString(this, (owner + "_refstructure")) {
44+ case refListS: String =>
45+ let refList = split(refListS, ",")
46+ let refListSize = size(refList)
47+ let incLevel1 = ((amount * level1) / 1000)
48+ let incCashBack = ((amount * cashBack) / 1000)
49+[balanceIncrement(owner, incCashBack), indexBalanceIncrement(owner, ownerColon, incCashBack, "_txs_cashback"), balanceIncrement(refList[0], incLevel1), indexBalanceIncrement(refList[0], ownerColon, incLevel1, "_txs_l1"), if ((refListSize == 2))
50+ then {
51+ let incLevel2 = ((amount * level2) / 1000)
52+[balanceIncrement(refList[1], incLevel2), indexBalanceIncrement(refList[1], ownerColon, incLevel2, "_txs_l2"), if ((refListSize == 3))
53+ then {
54+ let incLevel3 = ((amount * level3) / 1000)
55+[balanceIncrement(refList[2], incLevel3), indexBalanceIncrement(refList[2], ownerColon, incLevel3, "_txs_l3")]
56+ }
57+ else nil]
58+ }
59+ else nil]
60+ case _ =>
61+ nil
62+ })
63+ }
64+
65+
66+
67+@Callable(i)
68+func withdraw (amount) = if ((0 >= amount))
69+ then throw("invalid amount")
70+ else {
71+ let owner = toBase58String(i.callerPublicKey)
72+ let newBalance = ( match getInteger(this, (owner + "_balance")) {
73+ case b: Int =>
74+ b
75+ case _ =>
76+ 0
77+ } - amount)
78+ if ((0 > newBalance))
79+ then throw("transaction leads to negative account balance")
80+ else ScriptResult(WriteSet([DataEntry((owner + "_balance"), newBalance)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
81+ }
82+
83+
84+
85+@Callable(i)
86+func register (referer) = {
87+ let owner = toBase58String(i.callerPublicKey)
88+ if (isDefined(getReferer(owner)))
89+ then throw("Already registered")
90+ else {
91+ let referalsKey = (referer + "_referrals")
92+ let referals = match getString(this, referalsKey) {
93+ case oldRefs: String =>
94+ ((oldRefs + ",") + owner)
95+ case _ =>
96+ owner
97+ }
98+ let refStructure = (referer + match getReferer(referer) {
99+ case referer2: String =>
100+ (("," + referer2) + match getReferer(referer2) {
101+ case referer3: String =>
102+ ("," + referer3)
103+ case _ =>
104+ ""
105+ })
106+ case _ =>
107+ ""
108+ })
109+ WriteSet([DataEntry((owner + "_referer"), referer), DataEntry(referalsKey, referals), DataEntry((owner + "_refstructure"), refStructure)])
110+ }
111+ }
112+
113+

github/deemru/w8io/873ac7e 
40.08 ms