tx · 7W7izueMUAiQjnFEGNDz9vP7q5UXGeNWHsVTUoXSyiRu

3Msughfkwji8uccY4RAxuKWvNpnEscWyhHK:  -0.01400000 Waves

2019.06.21 19:35 [552020] smart account 3Msughfkwji8uccY4RAxuKWvNpnEscWyhHK > SELF 0.00000000 Waves

{ "type": 13, "id": "7W7izueMUAiQjnFEGNDz9vP7q5UXGeNWHsVTUoXSyiRu", "fee": 1400000, "feeAssetId": null, "timestamp": 1561134908895, "version": 1, "sender": "3Msughfkwji8uccY4RAxuKWvNpnEscWyhHK", "senderPublicKey": "AzyC6W7iD5HYehj2xef6xWKogmxDC6RaX9N1ST8P39bn", "proofs": [ "4mWWKwhWq3hsA7JsEwvsZsf9YT75eouDHGTfntTQrXzTKAyTLvmr4rKN46vXnB4hHD5XGR32zm9cEHWKEC9w3CM1" ], "script": "base64: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", "chainId": 84, "height": 552020, "spentComplexity": 0 } View: original | compacted Prev: AkF73KK6i9zsbEBPSmeaJLpXA9cZ3XEsmjL883SNgvs4 Next: F5wy5pRGBCcUY6EtvFit1heZyAnpUttNr1q91AnAitf1 Diff:
OldNewDifferences
4646 let refListSize = size(refList)
4747 let incLevel1 = ((amount * level1) / 1000)
4848 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))
49+[balanceIncrement(owner, incCashBack), indexBalanceIncrement(owner, ownerColon, incCashBack, "_txs_cashback"), balanceIncrement(refList[0], incLevel1), indexBalanceIncrement(refList[0], ownerColon, incLevel1, "_txs_l1"), if ((refListSize >= 2))
5050 then {
5151 let incLevel2 = ((amount * level2) / 1000)
52-[balanceIncrement(refList[1], incLevel2), indexBalanceIncrement(refList[1], ownerColon, incLevel2, "_txs_l2"), if ((refListSize == 3))
52+[balanceIncrement(refList[1], incLevel2), indexBalanceIncrement(refList[1], ownerColon, incLevel2, "_txs_l2"), if ((refListSize >= 3))
5353 then {
5454 let incLevel3 = ((amount * level3) / 1000)
5555 [balanceIncrement(refList[2], incLevel3), indexBalanceIncrement(refList[2], ownerColon, incLevel3, "_txs_l3")]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let level1 = 5
55
66 let level2 = 5
77
88 let level3 = 5
99
1010 let cashBack = 5
1111
1212 func balanceIncrement (address,inc) = {
1313 let balanceKey = (address + "_balance")
1414 DataEntry(balanceKey, (inc + match getInteger(this, balanceKey) {
1515 case b: Int =>
1616 b
1717 case _ =>
1818 0
1919 }))
2020 }
2121
2222
2323 func indexBalanceIncrement (address,owner,inc,level) = {
2424 let logKey = (address + level)
2525 let recordData = (owner + toString(inc))
2626 match getString(this, logKey) {
2727 case prev: String =>
2828 DataEntry(logKey, ((prev + ",") + recordData))
2929 case _ =>
3030 DataEntry(logKey, recordData)
3131 }
3232 }
3333
3434
3535 func getReferer (user) = getString(this, (user + "_referer"))
3636
3737
3838 @Callable(i)
3939 func fund () = {
4040 let owner = toBase58String(i.callerPublicKey)
4141 let ownerColon = (((owner + ":") + toString(height)) + ":")
4242 let amount = extract(i.payment).amount
4343 WriteSet( match getString(this, (owner + "_refstructure")) {
4444 case refListS: String =>
4545 let refList = split(refListS, ",")
4646 let refListSize = size(refList)
4747 let incLevel1 = ((amount * level1) / 1000)
4848 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))
49+[balanceIncrement(owner, incCashBack), indexBalanceIncrement(owner, ownerColon, incCashBack, "_txs_cashback"), balanceIncrement(refList[0], incLevel1), indexBalanceIncrement(refList[0], ownerColon, incLevel1, "_txs_l1"), if ((refListSize >= 2))
5050 then {
5151 let incLevel2 = ((amount * level2) / 1000)
52-[balanceIncrement(refList[1], incLevel2), indexBalanceIncrement(refList[1], ownerColon, incLevel2, "_txs_l2"), if ((refListSize == 3))
52+[balanceIncrement(refList[1], incLevel2), indexBalanceIncrement(refList[1], ownerColon, incLevel2, "_txs_l2"), if ((refListSize >= 3))
5353 then {
5454 let incLevel3 = ((amount * level3) / 1000)
5555 [balanceIncrement(refList[2], incLevel3), indexBalanceIncrement(refList[2], ownerColon, incLevel3, "_txs_l3")]
5656 }
5757 else nil]
5858 }
5959 else nil]
6060 case _ =>
6161 nil
6262 })
6363 }
6464
6565
6666
6767 @Callable(i)
6868 func withdraw (amount) = if ((0 >= amount))
6969 then throw("invalid amount")
7070 else {
7171 let owner = toBase58String(i.callerPublicKey)
7272 let newBalance = ( match getInteger(this, (owner + "_balance")) {
7373 case b: Int =>
7474 b
7575 case _ =>
7676 0
7777 } - amount)
7878 if ((0 > newBalance))
7979 then throw("transaction leads to negative account balance")
8080 else ScriptResult(WriteSet([DataEntry((owner + "_balance"), newBalance)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
8181 }
8282
8383
8484
8585 @Callable(i)
8686 func register (referer) = {
8787 let owner = toBase58String(i.callerPublicKey)
8888 if (isDefined(getReferer(owner)))
8989 then throw("Already registered")
9090 else {
9191 let referalsKey = (referer + "_referrals")
9292 let referals = match getString(this, referalsKey) {
9393 case oldRefs: String =>
9494 ((oldRefs + ",") + owner)
9595 case _ =>
9696 owner
9797 }
9898 let refStructure = (referer + match getReferer(referer) {
9999 case referer2: String =>
100100 (("," + referer2) + match getReferer(referer2) {
101101 case referer3: String =>
102102 ("," + referer3)
103103 case _ =>
104104 ""
105105 })
106106 case _ =>
107107 ""
108108 })
109109 WriteSet([DataEntry((owner + "_referer"), referer), DataEntry(referalsKey, referals), DataEntry((owner + "_refstructure"), refStructure)])
110110 }
111111 }
112112
113113

github/deemru/w8io/873ac7e 
29.15 ms