tx · 6ynNC7JB7PKWXPkj63SNYSsY7yfnb2B4jvuhC4qsp5fJ

3N86zk6P6pyxFnu5o1U62pZeiRQ6Q1b3Lgb:  -0.01000010 Waves

2021.07.09 12:51 [1605917] smart account 3N86zk6P6pyxFnu5o1U62pZeiRQ6Q1b3Lgb > SELF 0.00000000 Waves

{ "type": 13, "id": "6ynNC7JB7PKWXPkj63SNYSsY7yfnb2B4jvuhC4qsp5fJ", "fee": 1000010, "feeAssetId": null, "timestamp": 1625824353648, "version": 2, "chainId": 84, "sender": "3N86zk6P6pyxFnu5o1U62pZeiRQ6Q1b3Lgb", "senderPublicKey": "J5UWSH8o2ZgSCRmahKoyq3Zzf9CSXEJtFQjoxuiqw8jN", "proofs": [ "3HFHxandMT28HwMYihPMg2cFBM5X9nxFhWMfUK5kWqP7sDRngj8YiJ3a74VCyrpB3mKVM7gTshXd86FkEb6uM2LN" ], "script": "base64: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", "height": 1605917, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BPMAHCtJmzGugUet8TBAkBszFC1RCXruumc3qy9zkRih Next: 6hNa5jwUcwmHbkepprsQ2xcJoF13jw9fvHMeC13tHudt Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func getExtValueItemWhiteListStatus (item) = (item + "_verifier_status")
4+let NONE = "none"
5+
6+func getStrByKey (key) = {
7+ let str = match getString(this, key) {
8+ case a: String =>
9+ a
10+ case _ =>
11+ NONE
12+ }
13+ str
14+ }
15+
16+
17+func getKeyItemPrice (item) = (item + "_price")
18+
19+
20+func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
21+
22+
23+func getKeyItemData (item) = (item + "_data")
24+
25+
26+func getKeyItemSupplier (item) = (item + "_data")
27+
28+
29+func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
530
631
732 let verifier = "3N86zk6P6pyxFnu5o1U62pZeiRQ6Q1b3Lgb"
934 let VERIFIED = "verified"
1035
1136 let BLACKLISTED = "blacklist"
37+
38+func getExtAddressOracle () = value(addressFromString("3N86zk6P6pyxFnu5o1U62pZeiRQ6Q1b3Lgb"))
39+
40+
41+func getExtKeyItemWhiteListStatus (account) = (account + "_verifier_status")
42+
43+
44+func getExtValueItemWhiteListStatus (oracle,account) = {
45+ let str = match getString(oracle, getExtKeyItemWhiteListStatus(account)) {
46+ case a: String =>
47+ a
48+ case _ =>
49+ NONE
50+ }
51+ str
52+ }
53+
54+
55+@Callable(i)
56+func addItem (title,price,data) = {
57+ let supplierAddress = toBase58String(i.caller.bytes)
58+ let item = getKeyItem(supplierAddress, title)
59+ let supplierwhitelist = getExtValueItemWhiteListStatus(getExtAddressOracle(), supplierAddress)
60+ if ((0 >= price))
61+ then throw("purchase amount cannot be less than item price")
62+ else if ((getValueItemSupplier(item) != NONE))
63+ then throw("an item is already exit")
64+ else if ((supplierwhitelist == BLACKLISTED))
65+ then throw("supplier's account has been blacklisted")
66+ else [StringEntry(getKeyItemSupplier(item), supplierAddress), IntegerEntry(getKeyItemPrice(item), price), StringEntry(getKeyItemData(item), data), StringEntry(getExtKeyItemWhiteListStatus(supplierAddress), supplierwhitelist)]
67+ }
68+
69+
1270
1371 @Callable(i)
1472 func setstatus (supplier,status) = {
1977 then (status != BLACKLISTED)
2078 else false)
2179 then throw("waiting status")
22- else [StringEntry(getExtValueItemWhiteListStatus(supplier), status)]
80+ else [StringEntry(getExtKeyItemWhiteListStatus(supplier), status)]
2381 }
2482
2583
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func getExtValueItemWhiteListStatus (item) = (item + "_verifier_status")
4+let NONE = "none"
5+
6+func getStrByKey (key) = {
7+ let str = match getString(this, key) {
8+ case a: String =>
9+ a
10+ case _ =>
11+ NONE
12+ }
13+ str
14+ }
15+
16+
17+func getKeyItemPrice (item) = (item + "_price")
18+
19+
20+func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
21+
22+
23+func getKeyItemData (item) = (item + "_data")
24+
25+
26+func getKeyItemSupplier (item) = (item + "_data")
27+
28+
29+func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
530
631
732 let verifier = "3N86zk6P6pyxFnu5o1U62pZeiRQ6Q1b3Lgb"
833
934 let VERIFIED = "verified"
1035
1136 let BLACKLISTED = "blacklist"
37+
38+func getExtAddressOracle () = value(addressFromString("3N86zk6P6pyxFnu5o1U62pZeiRQ6Q1b3Lgb"))
39+
40+
41+func getExtKeyItemWhiteListStatus (account) = (account + "_verifier_status")
42+
43+
44+func getExtValueItemWhiteListStatus (oracle,account) = {
45+ let str = match getString(oracle, getExtKeyItemWhiteListStatus(account)) {
46+ case a: String =>
47+ a
48+ case _ =>
49+ NONE
50+ }
51+ str
52+ }
53+
54+
55+@Callable(i)
56+func addItem (title,price,data) = {
57+ let supplierAddress = toBase58String(i.caller.bytes)
58+ let item = getKeyItem(supplierAddress, title)
59+ let supplierwhitelist = getExtValueItemWhiteListStatus(getExtAddressOracle(), supplierAddress)
60+ if ((0 >= price))
61+ then throw("purchase amount cannot be less than item price")
62+ else if ((getValueItemSupplier(item) != NONE))
63+ then throw("an item is already exit")
64+ else if ((supplierwhitelist == BLACKLISTED))
65+ then throw("supplier's account has been blacklisted")
66+ else [StringEntry(getKeyItemSupplier(item), supplierAddress), IntegerEntry(getKeyItemPrice(item), price), StringEntry(getKeyItemData(item), data), StringEntry(getExtKeyItemWhiteListStatus(supplierAddress), supplierwhitelist)]
67+ }
68+
69+
1270
1371 @Callable(i)
1472 func setstatus (supplier,status) = {
1573 let account = toBase58String(i.caller.bytes)
1674 if ((account != verifier))
1775 then throw("only oracle veryfier are able to manage whilelist")
1876 else if (if ((status != VERIFIED))
1977 then (status != BLACKLISTED)
2078 else false)
2179 then throw("waiting status")
22- else [StringEntry(getExtValueItemWhiteListStatus(supplier), status)]
80+ else [StringEntry(getExtKeyItemWhiteListStatus(supplier), status)]
2381 }
2482
2583

github/deemru/w8io/873ac7e 
26.78 ms