tx · BKKzgqecgpX8VsTLwSviScgceFcAP6xR36qzzdMpMXJ7

3MpfKPtuGkDUZkw6iHWTqNgdUzpPA44bma5:  -0.01400000 Waves

2019.07.16 21:04 [588709] smart account 3MpfKPtuGkDUZkw6iHWTqNgdUzpPA44bma5 > SELF 0.00000000 Waves

{ "type": 13, "id": "BKKzgqecgpX8VsTLwSviScgceFcAP6xR36qzzdMpMXJ7", "fee": 1400000, "feeAssetId": null, "timestamp": 1563300287324, "version": 1, "sender": "3MpfKPtuGkDUZkw6iHWTqNgdUzpPA44bma5", "senderPublicKey": "75T1yn3QVjmV2bCHEnoPm5GX5i2H3kr8j32LZNiZSoJe", "proofs": [ "4U4ovXwkboB4XV9cpbBX2M5Voyp99Qg8PUSY1xZvZF3E4eitHdugFkVjuC6JApEKRcD9k3nubYQ6xhxAkxQUHiz5" ], "script": "base64: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", "chainId": 84, "height": 588709, "spentComplexity": 0 } View: original | compacted Prev: EunLSRdx9WjgtLMr6umAfhxiJyEsyHcXDbfnNDZ44dqM Next: none Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let serviceFee = 100000
4+let serviceFee = 1000000
55
66 let empty = "NULL"
77
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let serviceFee = 100000
4+let serviceFee = 1000000
55
66 let empty = "NULL"
77
88 let allMessageBoardKey = "all_message"
99
1010 let activeMessageKey = "active_message"
1111
1212 let earnedWavesKey = "earnedWaves"
1313
1414 let serviceFeeKey = "serviceFee"
1515
1616 let dAppOwner = "3MviKe8vybnkYuJ83e8QVSWQ1VHyfgpiF3W"
1717
1818 func uniqueKey (owner,text) = {
1919 let uKey = toBase58String(sha256(toBytes((owner + text))))
2020 uKey
2121 }
2222
2323
2424 func getNumberByKey (key) = {
2525 let num = match getInteger(this, key) {
2626 case a: Int =>
2727 a
2828 case _ =>
2929 0
3030 }
3131 num
3232 }
3333
3434
3535 func getStrByKey (key) = {
3636 let str = match getString(this, key) {
3737 case a: String =>
3838 a
3939 case _ =>
4040 empty
4141 }
4242 str
4343 }
4444
4545
4646 func getSeviceFee () = {
4747 let fee = match getInteger(this, serviceFeeKey) {
4848 case a: Int =>
4949 a
5050 case _ =>
5151 serviceFee
5252 }
5353 fee
5454 }
5555
5656
5757 @Callable(i)
5858 func setMessage (text) = {
5959 let pmt = extract(i.payment)
6060 let localFee = getSeviceFee()
6161 if (isDefined(pmt.assetId))
6262 then throw("WAVES token only at the moment")
6363 else if ((pmt.amount != localFee))
6464 then throw("Wrong service fee amount")
6565 else {
6666 let ownerAddress = toBase58String(i.caller.bytes)
6767 let uKey = uniqueKey(ownerAddress, (toString(height) + toBase58String(i.transactionId)))
6868 let allMessage = getNumberByKey(allMessageBoardKey)
6969 let actMessage = getNumberByKey(activeMessageKey)
7070 let earnedWaves = getNumberByKey(earnedWavesKey)
7171 WriteSet([DataEntry(("owner_" + uKey), ownerAddress), DataEntry(("message_" + uKey), text), DataEntry(allMessageBoardKey, (allMessage + 1)), DataEntry(activeMessageKey, (actMessage + 1)), DataEntry(earnedWavesKey, (earnedWaves + localFee))])
7272 }
7373 }
7474
7575
7676
7777 @Callable(i)
7878 func removeMessage (uKey) = {
7979 let owner = getStrByKey(("owner_" + uKey))
8080 let actMessage = getNumberByKey(activeMessageKey)
8181 let senderAddress = toBase58String(i.caller.bytes)
8282 if ((owner == empty))
8383 then throw("Message didn't found")
8484 else if ((owner != senderAddress))
8585 then throw(("You don't owner of message " + uKey))
8686 else WriteSet([DataEntry(activeMessageKey, (actMessage - 1)), DataEntry(("message_" + uKey), "#REMOVED#")])
8787 }
8888
8989
9090
9191 @Callable(i)
9292 func setServiceFee (newFee) = {
9393 let senderAddress = toBase58String(i.caller.bytes)
9494 if ((senderAddress != dAppOwner))
9595 then throw("You aren't owner this dApp")
9696 else WriteSet([DataEntry(serviceFeeKey, newFee)])
9797 }
9898
9999
100100
101101 @Callable(i)
102102 func violationDetected (uKey) = {
103103 let actMessage = getNumberByKey(activeMessageKey)
104104 let senderAddress = toBase58String(i.caller.bytes)
105105 if ((senderAddress != dAppOwner))
106106 then throw("You aren't owner this dApp")
107107 else WriteSet([DataEntry(activeMessageKey, (actMessage - 1)), DataEntry(("message_" + uKey), "#VIOLATION OF RULES#")])
108108 }
109109
110110
111111
112112 @Callable(i)
113113 func withdraw (amount) = {
114114 let senderAddress = toBase58String(i.caller.bytes)
115115 if ((senderAddress != dAppOwner))
116116 then throw("You aren't owner this dApp")
117117 else TransferSet([ScriptTransfer(i.caller, amount, unit)])
118118 }
119119
120120
121121 @Verifier(tx)
122122 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
123123

github/deemru/w8io/169f3d6 
27.41 ms