tx · HqcJUYHvtxEjzyXC9wnKDJBRgwHFVDL1TdhKcLBR4o7B

3N9iA47xGo5gF86JaPJtKFvA2wHFVxQc5Mz:  -0.01000000 Waves

2019.07.03 12:31 [569049] smart account 3N9iA47xGo5gF86JaPJtKFvA2wHFVxQc5Mz > SELF 0.00000000 Waves

{ "type": 13, "id": "HqcJUYHvtxEjzyXC9wnKDJBRgwHFVDL1TdhKcLBR4o7B", "fee": 1000000, "feeAssetId": null, "timestamp": 1562146252624, "version": 1, "sender": "3N9iA47xGo5gF86JaPJtKFvA2wHFVxQc5Mz", "senderPublicKey": "22gUV9gcRE4xYFWcUA9oehLPUASirUZgQ5DLxYgqt881", "proofs": [ "3Ea3pJuqRsUeB3X8AkMGjE7kTXexJYBniH4BacdVEVAibmzwfJvCF2UHGaJoD8YwJyvNm4zmaBG6FM73wgu9VFH" ], "script": "base64:AAIDAAAAAAAAAAAAAAALAQAAABNnZXRFeHRBZGRyZXNzT3JhY2xlAAAAAAkBAAAAB2V4dHJhY3QAAAABCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABAgAAACMzTXdDR1YxSEVLSzdOUFZIY3Z6OFhXZ0R5RzdEYWU0WUhDMgAAAAALQkxBQ0tMSVNURUQCAAAACWJsYWNrbGlzdAAAAAAETk9ORQIAAAAEbm9uZQEAAAAcZ2V0RXh0S2V5SXRlbVdoaXRlTGlzdFN0YXR1cwAAAAEAAAAHYWNjb3VudAkAASwAAAACBQAAAAdhY2NvdW50AgAAABBfdmVyaWZpZXJfc3RhdHVzAQAAAB5nZXRFeHRWYWx1ZUl0ZW1XaGl0ZUxpc3RTdGF0dXMAAAACAAAABm9yYWNsZQAAAAdhY2NvdW50BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAGb3JhY2xlCQEAAAAcZ2V0RXh0S2V5SXRlbVdoaXRlTGlzdFN0YXR1cwAAAAEFAAAAB2FjY291bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAApnZXRLZXlJdGVtAAAAAgAAAAhzdXBwbGllcgAAAAV0aXRsZQkAASwAAAACAgAAAAVpdGVtXwkAAlgAAAABCQAB9wAAAAEJAAGbAAAAAQkAASwAAAACBQAAAAhzdXBwbGllcgUAAAAFdGl0bGUBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAZfb3duZXIBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAZfcHJpY2UBAAAADmdldEtleUl0ZW1EYXRhAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABV9kYXRhAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtAAAAAQAAAAFpAQAAAAdhZGRJdGVtAAAAAwAAAAV0aXRsZQAAAAVwcmljZQAAAARkYXRhBAAAAA9zdXBwbGllckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAEaXRlbQkBAAAACmdldEtleUl0ZW0AAAACBQAAAA9zdXBwbGllckFkZHJlc3MFAAAABXRpdGxlBAAAABFzdXBwbGllcndoaXRlbGlzdAkBAAAAHmdldEV4dFZhbHVlSXRlbVdoaXRlTGlzdFN0YXR1cwAAAAIJAQAAABNnZXRFeHRBZGRyZXNzT3JhY2xlAAAAAAUAAAAPc3VwcGxpZXJBZGRyZXNzAwkAAGcAAAACAAAAAAAAAAAABQAAAAVwcmljZQkAAAIAAAABAgAAAC5wdXJjaGFzZSBhbW91bnQgY2Fubm90IGJlIGxlc3MgdGhhbiBpdGVtIHByaWNlAwkBAAAAAiE9AAAAAgkBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAETk9ORQkAAAIAAAABAgAAABhhbiBpdGVtIGlzIGFscmVhZHkgZXhpc3QDCQAAAAAAAAIFAAAAEXN1cHBsaWVyd2hpdGVsaXN0BQAAAAtCTEFDS0xJU1RFRAkAAAIAAAABAgAAACJzdXBwbGllcnMgYWNjIGhhcyBiZWVuIGJsYWNrbGlzdGVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAPc3VwcGxpZXJBZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQUAAAAEaXRlbQUAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEFAAAABGl0ZW0FAAAABGRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABxnZXRFeHRLZXlJdGVtV2hpdGVMaXN0U3RhdHVzAAAAAQUAAAAPc3VwcGxpZXJBZGRyZXNzBQAAABFzdXBwbGllcndoaXRlbGlzdAUAAAADbmlsAAAAAENcGKc=", "chainId": 84, "height": 569049, "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+func getExtAddressOracle () = extract(addressFromString("3MwCGV1HEKK7NPVHcvz8XWgDyG7Dae4YHC2"))
5+
6+
7+let BLACKLISTED = "blacklist"
8+
9+let NONE = "none"
10+
11+func getExtKeyItemWhiteListStatus (account) = (account + "_verifier_status")
12+
13+
14+func getExtValueItemWhiteListStatus (oracle,account) = {
15+ let str = match getString(oracle, getExtKeyItemWhiteListStatus(account)) {
16+ case a: String =>
17+ a
18+ case _ =>
19+ NONE
20+ }
21+ str
22+ }
23+
24+
25+func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
26+
27+
28+func getKeyItemSupplier (item) = (item + "_owner")
29+
30+
31+func getKeyItemPrice (item) = (item + "_price")
32+
33+
34+func getKeyItemData (item) = (item + "_data")
35+
36+
37+func getStrByKey (key) = {
38+ let str = match getString(this, key) {
39+ case a: String =>
40+ a
41+ case _ =>
42+ NONE
43+ }
44+ str
45+ }
46+
47+
48+func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
49+
50+
51+@Callable(i)
52+func addItem (title,price,data) = {
53+ let supplierAddress = toBase58String(i.caller.bytes)
54+ let item = getKeyItem(supplierAddress, title)
55+ let supplierwhitelist = getExtValueItemWhiteListStatus(getExtAddressOracle(), supplierAddress)
56+ if ((0 >= price))
57+ then throw("purchase amount cannot be less than item price")
58+ else if ((getValueItemSupplier(item) != NONE))
59+ then throw("an item is already exist")
60+ else if ((supplierwhitelist == BLACKLISTED))
61+ then throw("suppliers acc has been blacklisted")
62+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data), DataEntry(getExtKeyItemWhiteListStatus(supplierAddress), supplierwhitelist)])
63+ }
64+
65+

github/deemru/w8io/c3f4982 
14.06 ms