tx · F3xrXfVe7LWrxLiTDd4LeyQ537GeXyGz8Mi9vryi8brd

3N3wMCgAGmnSYxTKnJXKQV4XewWrGYPeSv5:  -0.01400000 Waves

2019.07.03 23:51 [569742] smart account 3N3wMCgAGmnSYxTKnJXKQV4XewWrGYPeSv5 > SELF 0.00000000 Waves

{ "type": 13, "id": "F3xrXfVe7LWrxLiTDd4LeyQ537GeXyGz8Mi9vryi8brd", "fee": 1400000, "feeAssetId": null, "timestamp": 1562187130560, "version": 1, "sender": "3N3wMCgAGmnSYxTKnJXKQV4XewWrGYPeSv5", "senderPublicKey": "8uqc3eC69atTDUkb39Njfd6WrdhAmNnnBi7sm765jZwL", "proofs": [ "4yNoGKnZ9Y2QBL53zzqxGtHpNfrrxkXiKDLJdT4dEciLpXWoC7HPdpHDiGcVGS136pr4GbVaLsg5fKk6kexjVerS" ], "script": "base64:AAIDAAAAAAAAAAAAAAATAAAAAAROT05FAgAAAARub25lAAAAAAhWRVJJRklFRAIAAAAIdmVyaWZpZWQAAAAAC0JMQUNLTElTVEVEAgAAAAlibGFja2xpc3QAAAAACHZlcmlmaWVyAgAAACMzTjVYVkUzUnVuRDZ0U1lrQ3ZnZjI2czlwdWVka0Z0d2ZueQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAADbnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABQAAAANudW0BAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAGX3ByaWNlAQAAABFnZXRWYWx1ZUl0ZW1QcmljZQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEFAAAABGl0ZW0BAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAARfY250AQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAAKZ2V0S2V5SXRlbQAAAAIAAAAIc3VwcGxpZXIAAAAFdGl0bGUJAAEsAAAAAgIAAAAFaXRlbV8JAAJYAAAAAQkAAfcAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAIc3VwcGxpZXIFAAAABXRpdGxlAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAVfZGF0YQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9vd25lcgEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABAAAAB2FjY291bnQJAAEsAAAAAgUAAAAHYWNjb3VudAIAAAAIX2JhbGFuY2UBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAHYWNjb3VudAEAAAATZ2V0RXh0QWRkcmVzc09yYWNsZQAAAAAJAQAAAAdleHRyYWN0AAAAAQkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM041WFZFM1J1bkQ2dFNZa0N2Z2YyNnM5cHVlZGtGdHdmbnkBAAAAHGdldEV4dEtleUl0ZW1XaGl0ZUxpc3RTdGF0dXMAAAABAAAAB2FjY291bnQJAAEsAAAAAgUAAAAHYWNjb3VudAIAAAAQX3ZlcmlmaWVyX3N0YXR1cwEAAAAeZ2V0RXh0VmFsdWVJdGVtV2hpdGVMaXN0U3RhdHVzAAAAAgAAAAZvcmFjbGUAAAAHYWNjb3VudAQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABm9yYWNsZQkBAAAAHGdldEV4dEtleUl0ZW1XaGl0ZUxpc3RTdGF0dXMAAAABBQAAAAdhY2NvdW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgAAAAEAAAABaQEAAAAHYWRkSXRlbQAAAAMAAAAFdGl0bGUAAAAFcHJpY2UAAAAEZGF0YQQAAAAPc3VwcGxpZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABGl0ZW0JAQAAAApnZXRLZXlJdGVtAAAAAgUAAAAPc3VwcGxpZXJBZGRyZXNzBQAAAAV0aXRsZQQAAAARc3VwcGxpZXJ3aGl0ZWxpc3QJAQAAAB5nZXRFeHRWYWx1ZUl0ZW1XaGl0ZUxpc3RTdGF0dXMAAAACCQEAAAATZ2V0RXh0QWRkcmVzc09yYWNsZQAAAAAFAAAAD3N1cHBsaWVyQWRkcmVzcwMJAABnAAAAAgAAAAAAAAAAAAUAAAAFcHJpY2UJAAACAAAAAQIAAAAucHVyY2hhc2UgYW1vdW50IGNhbm5vdCBiZSBsZXNzIHRoYW4gaXRlbSBwcmljZQMJAQAAAAIhPQAAAAIJAQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAABE5PTkUJAAACAAAAAQIAAAAYYW4gaXRlbSBpcyBhbHJlYWR5IGV4aXN0AwkAAAAAAAACBQAAABFzdXBwbGllcndoaXRlbGlzdAUAAAALQkxBQ0tMSVNURUQJAAACAAAAAQIAAAAnc3VwcGxpZXIncyBhY2NvdW50IGhhcyBiZWVuIGJsYWNrbGlzdGVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAPc3VwcGxpZXJBZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQUAAAAEaXRlbQUAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEFAAAABGl0ZW0FAAAABGRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABxnZXRFeHRLZXlJdGVtV2hpdGVMaXN0U3RhdHVzAAAAAQUAAAAPc3VwcGxpZXJBZGRyZXNzBQAAABFzdXBwbGllcndoaXRlbGlzdAUAAAADbmlsAAAAAK2tTCw=", "chainId": 84, "height": 569742, "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+let VERIFIED = "verified"
7+
8+let BLACKLISTED = "blacklist"
9+
10+let verifier = "3N5XVE3RunD6tSYkCvgf26s9puedkFtwfny"
11+
12+func getNumberByKey (key) = {
13+ let num = match getInteger(this, key) {
14+ case a: Int =>
15+ a
16+ case _ =>
17+ 0
18+ }
19+ num
20+ }
21+
22+
23+func getStrByKey (key) = {
24+ let str = match getString(this, key) {
25+ case a: String =>
26+ a
27+ case _ =>
28+ NONE
29+ }
30+ str
31+ }
32+
33+
34+func getKeyItemPrice (item) = (item + "_price")
35+
36+
37+func getValueItemPrice (item) = getNumberByKey(getKeyItemPrice(item))
38+
39+
40+func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
41+
42+
43+func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
44+
45+
46+func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
47+
48+
49+func getKeyItemData (item) = (item + "_data")
50+
51+
52+func getKeyItemSupplier (item) = (item + "_owner")
53+
54+
55+func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
56+
57+
58+func getKeyBalanceSupplier (account) = (account + "_balance")
59+
60+
61+func getValueBalanceSupplier (account) = getNumberByKey(getKeyBalanceSupplier(account))
62+
63+
64+func getExtAddressOracle () = extract(addressFromString("3N5XVE3RunD6tSYkCvgf26s9puedkFtwfny"))
65+
66+
67+func getExtKeyItemWhiteListStatus (account) = (account + "_verifier_status")
68+
69+
70+func getExtValueItemWhiteListStatus (oracle,account) = {
71+ let str = match getString(oracle, getExtKeyItemWhiteListStatus(account)) {
72+ case a: String =>
73+ a
74+ case _ =>
75+ NONE
76+ }
77+ str
78+ }
79+
80+
81+@Callable(i)
82+func addItem (title,price,data) = {
83+ let supplierAddress = toBase58String(i.caller.bytes)
84+ let item = getKeyItem(supplierAddress, title)
85+ let supplierwhitelist = getExtValueItemWhiteListStatus(getExtAddressOracle(), supplierAddress)
86+ if ((0 >= price))
87+ then throw("purchase amount cannot be less than item price")
88+ else if ((getValueItemSupplier(item) != NONE))
89+ then throw("an item is already exist")
90+ else if ((supplierwhitelist == BLACKLISTED))
91+ then throw("supplier's account has been blacklisted")
92+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data), DataEntry(getExtKeyItemWhiteListStatus(supplierAddress), supplierwhitelist)])
93+ }
94+
95+

github/deemru/w8io/169f3d6 
17.58 ms