tx · 7tAfnVK54MqYvxqHLCBNAV2PKMNQRREyrEeodJSwUuhy

3Mp5E6sU99esVG53HBaJjpXPKyR7jm8BLbW:  -0.01000000 Waves

2019.07.09 21:32 [578469] smart account 3Mp5E6sU99esVG53HBaJjpXPKyR7jm8BLbW > SELF 0.00000000 Waves

{ "type": 13, "id": "7tAfnVK54MqYvxqHLCBNAV2PKMNQRREyrEeodJSwUuhy", "fee": 1000000, "feeAssetId": null, "timestamp": 1562697110772, "version": 1, "sender": "3Mp5E6sU99esVG53HBaJjpXPKyR7jm8BLbW", "senderPublicKey": "Ey366N9L2sE822jRDM9yytqRUXKTpzQyTzZcProt1ey8", "proofs": [ "4b1mU4hn5LBDvCs54mduKksq6o4SuF9ESG661iRtfBnMPfzXek37kQ221juBAWNnTsyMRmhNST5WU6xVtQSEkomx" ], "script": "base64:AAIDAAAAAAAAAAAAAAAPAAAAAAROT05FAgAAAARub25lAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAZfcHJpY2UBAAAAEWdldFZhbHVlSXRlbVByaWNlAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0JAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAAAV8FAAAABHVzZXICAAAABF9jbnQBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAR1c2VyBQAAAARpdGVtAQAAAApnZXRLZXlJdGVtAAAAAgAAAAhzdXBwbGllcgAAAAV0aXRsZQkAASwAAAACAgAAAAVpdGVtXwkAAlgAAAABCQAB9wAAAAEJAAGbAAAAAQkAASwAAAACBQAAAAhzdXBwbGllcgUAAAAFdGl0bGUBAAAADmdldEtleUl0ZW1EYXRhAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABV9kYXRhAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAGX293bmVyAQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAE2dldEV4dEFkZHJlc3NPcmFjbGUAAAAACQEAAAAHZXh0cmFjdAAAAAEJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNNdFhBajNSZVdQWVA0THVTdXhuQzRIM1U1RXlEdHpDc2VTAAAAAAtCTEFDS0xJU1RFRAIAAAAJYmxhY2tsaXN0AQAAABxnZXRFeHRLZXlJdGVtV2hpdGVMaXN0U3RhdHVzAAAAAQAAAAdhY2NvdW50CQABLAAAAAIFAAAAB2FjY291bnQCAAAAEF92ZXJpZmllcl9zdGF0dXMBAAAAHmdldEV4dFZhbHVlaXRlbVdoaXRlTGlzdFN0YXR1cwAAAAIAAAAGb3JhY2xlAAAAB2FjY291bnQEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAZvcmFjbGUJAQAAABxnZXRFeHRLZXlJdGVtV2hpdGVMaXN0U3RhdHVzAAAAAQUAAAAHYWNjb3VudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIAAAABAAAAAWkBAAAAB2FkZEl0ZW0AAAADAAAABXRpdGxlAAAABXByaWNlAAAABGRhdGEEAAAAD3N1cHBsaWVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAARpdGVtCQEAAAAKZ2V0S2V5SXRlbQAAAAIFAAAAD3N1cHBsaWVyQWRkcmVzcwUAAAAFdGl0bGUEAAAAEXN1cHBsaWVyV2hpdGVMaXN0CQEAAAAeZ2V0RXh0VmFsdWVpdGVtV2hpdGVMaXN0U3RhdHVzAAAAAgkBAAAAE2dldEV4dEFkZHJlc3NPcmFjbGUAAAAABQAAAA9zdXBwbGllckFkZHJlc3MDCQAAZwAAAAIAAAAAAAAAAAAFAAAABXByaWNlCQAAAgAAAAECAAAAL3B1cmNoYXNlIGFtb3VudCBjYW5ub3RlIGJlIGxlc3MgdGhhbiBpdGVtIHByaWNlAwkBAAAAAiE9AAAAAgkBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAETk9ORQkAAAIAAAABAgAAABhhbiBpdGVtIGlzIGFscmVhZHkgZXhpc3QDCQAAAAAAAAIFAAAAEXN1cHBsaWVyV2hpdGVMaXN0BQAAAAtCTEFDS0xJU1RFRAkAAAIAAAABAgAAACZzdXBwbGllcnMgYWNjb3VudCBoYXMgYmVlbiBibGFja2xpc3RlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAAD3N1cHBsaWVyQWRkcmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEFAAAABGl0ZW0FAAAABXByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABBQAAAARpdGVtBQAAAARkYXRhCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAcZ2V0RXh0S2V5SXRlbVdoaXRlTGlzdFN0YXR1cwAAAAEFAAAAD3N1cHBsaWVyQWRkcmVzcwUAAAARc3VwcGxpZXJXaGl0ZUxpc3QFAAAAA25pbAAAAABk47Rk", "chainId": 84, "height": 578469, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let NONE = "none"
5+
6+func getNumberByKey (key) = {
7+ let num = match getInteger(this, key) {
8+ case a: Int =>
9+ a
10+ case _ =>
11+ 0
12+ }
13+ num
14+ }
15+
16+
17+func getStrByKey (key) = {
18+ let str = match getString(this, key) {
19+ case a: String =>
20+ a
21+ case _ =>
22+ NONE
23+ }
24+ str
25+ }
26+
27+
28+func getKeyItemPrice (item) = (item + "_price")
29+
30+
31+func getValueItemPrice (item) = getNumberByKey(getKeyItemPrice(item))
32+
33+
34+func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
35+
36+
37+func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
38+
39+
40+func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
41+
42+
43+func getKeyItemData (item) = (item + "_data")
44+
45+
46+func getKeyItemSupplier (item) = (item + "_owner")
47+
48+
49+func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
50+
51+
52+func getExtAddressOracle () = extract(addressFromString("3MtXAj3ReWPYP4LuSuxnC4H3U5EyDtzCseS"))
53+
54+
55+let BLACKLISTED = "blacklist"
56+
57+func getExtKeyItemWhiteListStatus (account) = (account + "_verifier_status")
58+
59+
60+func getExtValueitemWhiteListStatus (oracle,account) = {
61+ let str = match getString(oracle, getExtKeyItemWhiteListStatus(account)) {
62+ case a: String =>
63+ a
64+ case _ =>
65+ NONE
66+ }
67+ str
68+ }
69+
70+
71+@Callable(i)
72+func addItem (title,price,data) = {
73+ let supplierAddress = toBase58String(i.caller.bytes)
74+ let item = getKeyItem(supplierAddress, title)
75+ let supplierWhiteList = getExtValueitemWhiteListStatus(getExtAddressOracle(), supplierAddress)
76+ if ((0 >= price))
77+ then throw("purchase amount cannote be less than item price")
78+ else if ((getValueItemSupplier(item) != NONE))
79+ then throw("an item is already exist")
80+ else if ((supplierWhiteList == BLACKLISTED))
81+ then throw("suppliers account has been blacklisted")
82+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data), DataEntry(getExtKeyItemWhiteListStatus(supplierAddress), supplierWhiteList)])
83+ }
84+
85+

github/deemru/w8io/c3f4982 
13.25 ms