tx · 9eEywyMhrCAjvswy6yfxoXc4MLbGp2AtiHCbvw7z1FAd

3N7yL6nhsHwrkLfxpWGjM39hFj4qo97bCdZ:  -0.01000000 Waves

2023.10.12 07:07 [2794882] smart account 3N7yL6nhsHwrkLfxpWGjM39hFj4qo97bCdZ > SELF 0.00000000 Waves

{ "type": 13, "id": "9eEywyMhrCAjvswy6yfxoXc4MLbGp2AtiHCbvw7z1FAd", "fee": 1000000, "feeAssetId": null, "timestamp": 1697083708443, "version": 2, "chainId": 84, "sender": "3N7yL6nhsHwrkLfxpWGjM39hFj4qo97bCdZ", "senderPublicKey": "HhtVcCt3Zxp8Tuqw9d9Er8kVG8AhbCuxygMA2pTYqrj4", "proofs": [ "5rNza7K46qcHMX89axWgJUj7j43hiMTTt4qso9MAbHczzpo4n2dc2EmZScVFpVaS6Ge9GyhrQuAM9Q2kMhXrM9GM" ], "script": "base64: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", "height": 2794882, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 9tmk7twWB8y9rGxYyMe33uKb1H4esyNiQXb5DAxmqfaQ Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let VERSION = "1.0.0"
5+
6+let STATUS_PENDING = "PENDING"
7+
8+let STATUS_FLAGGED = "FLAGGED"
9+
10+let STATUS_CLEARED = "CLEARED"
11+
12+func getStringByKey (key) = valueOrElse(getString(this, key), "")
13+
14+
15+func keyName (caller,artId) = ((("art_name_" + artId) + "_") + caller)
16+
17+
18+func keyReport (artId,addr) = ((artId + "_") + addr)
19+
20+
21+let dappRunning = valueOrElse(getBoolean(this, "conf_dapp_is_running"), true)
22+
23+let maintenanceMSG = valueOrElse(getString(this, "conf_maintenance_msg"), "")
24+
25+let oracleFee = value(addressFromString(getStringByKey("conf_oracle_fee")))
26+
27+let artAssetId_str = getStringByKey("conf_accepted_asset_ART")
28+
29+let artAssetId = fromBase58String(artAssetId_str)
30+
31+let chris = getStringByKey("conf_admin_1")
32+
33+func idCallerDate (i) = if (!(dappRunning))
34+ then throw(maintenanceMSG)
35+ else $Tuple2(toBase58String(i.transactionId), toBase58String(i.caller.bytes))
36+
37+
38+func getIntegerByKeyFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
39+
40+
41+@Callable(invoke)
42+func setConf (key,val) = {
43+ let caller = toString(invoke.caller)
44+ if (containsElement([chris, toString(this)], caller))
45+ then if (contains(key, "conf_"))
46+ then [StringEntry(key, val)]
47+ else throw("Entries starting with conf_ only")
48+ else throw("You are not allowed to change this")
49+ }
50+
51+
52+
53+@Callable(i)
54+func report (artId,addr,msg) = {
55+ let $t016151649 = idCallerDate(i)
56+ let id = $t016151649._1
57+ let caller = $t016151649._2
58+ if ((getStringByKey(keyName(addr, artId)) == ""))
59+ then throw("No art matching for this address")
60+ else if ((getStringByKey(keyReport(artId, addr)) != ""))
61+ then throw("Already reported.")
62+ else [StringEntry(keyReport(artId, addr), ((STATUS_PENDING + "_") + caller)), StringEntry((keyReport(artId, addr) + "_comment_reporter"), msg)]
63+ }
64+
65+
66+
67+@Callable(i)
68+func processReport (artId,addr,status,comment) = if ((getStringByKey(keyName(addr, artId)) == ""))
69+ then throw("No art matching for this address")
70+ else if (!(containsElement([STATUS_CLEARED, STATUS_FLAGGED], status)))
71+ then throw("Status not found")
72+ else {
73+ let get_report = getStringByKey(keyReport(artId, addr))
74+ if ((get_report == ""))
75+ then throw("Report not found.")
76+ else {
77+ let reward = getIntegerByKeyFromOracle(("certification_fee_" + toBase58String(artAssetId)))
78+ let status_reporter = split(get_report, "_")
79+ let pay = if ((status == STATUS_FLAGGED))
80+ then [ScriptTransfer(Address(fromBase58String(status_reporter[1])), reward, artAssetId)]
81+ else nil
82+ let $t026942728 = idCallerDate(i)
83+ let id = $t026942728._1
84+ let caller = $t026942728._2
85+ if (containsElement([chris, toString(this)], caller))
86+ then [StringEntry(keyReport(artId, addr), status), StringEntry((keyReport(artId, addr) + "_comment_admin"), comment)]
87+ else throw("Not allowed")
88+ }
89+ }
90+
91+
92+@Verifier(tx)
93+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
94+

github/deemru/w8io/3ef1775 
134.24 ms