tx · AorR7e3p7TYvChwfP3dmM7vjAmiGaDSTZ813zbivZEus

3MrFUxcMycRcQDahrA16JhvuEKnbmMF3QZP:  -0.01400000 Waves

2021.11.21 18:36 [1800989] smart account 3MrFUxcMycRcQDahrA16JhvuEKnbmMF3QZP > SELF 0.00000000 Waves

{ "type": 13, "id": "AorR7e3p7TYvChwfP3dmM7vjAmiGaDSTZ813zbivZEus", "fee": 1400000, "feeAssetId": null, "timestamp": 1637509051823, "version": 2, "chainId": 84, "sender": "3MrFUxcMycRcQDahrA16JhvuEKnbmMF3QZP", "senderPublicKey": "HtiJZF4j7Jo8jR12wxtKDkNhS3qCe3qsk8QxnnjVvXyq", "proofs": [ "TyWgh6YK4s7GbkDkChJMxEbtt4r3dfsbhjzSKfGukRmb9NxSHuJJmFk8HH4jsfpS95B4kyMwAzHdeBkAogmCV8d" ], "script": "base64:AAIDAAAAAAAAAB0IARIFCgMIAQgSAwoBCBIAEgQKAggIEgUKAwgICAAAACgAAAAADm93bmVyUHVibGljS2V5AQAAACD6+lAsvaY9/ICsFhS1sYMY13YGhvh1jT1AiPapnK+uIAAAAAALcHViS2V5QWxpY2UBAAAAIPr6UCy9pj38gKwWFLWxgxjXdgaG+HWNPUCI9qmcr64gAAAAAAlwdWJLZXlCb2IBAAAAIJSwJHqny7GXkLqb/9sX0sw4nnCkaYeDrScKSJwbx9dLAAAAAAxwdWJLZXlDb29wZXIBAAAAIMviW1daO0ECCbLD7je58oUri4AFkKl3dlICXnEszUFIAAAAABRhc3NldEJsYWNrVEFCQWRkcmVzcwEAAAAgfSL5lO/xjkivVRI7rJPtYub6dx+5oL8Sz+vDUdjqimsAAAAAFWFzc2V0QmxhY2tUQUIyQWRkcmVzcwEAAAAgjLsNyV8bNduIdEEpgfRYge1hNpydBvjMGBggFNGAk3AAAAAAGmFzc2V0QmxhY2tJY2VDb3Vwb25BZGRyZXNzAQAAACCVGEj1LkFMSspvD7WdDjwRqsgN1uawOvUcXDiZf3WwQAAAAAAETk9ORQIAAAAEbm9uZQAAAAAGVk9URVJTAAAAAAAAAAADAAAAAAZRVU9SVU0AAAAAAAAAAAIAAAAABlZPVElORwIAAAAGdm90aW5nAAAAAAZSRVZFQUwCAAAABnJldmVhbAAAAAAIRkVBVFVSRUQCAAAACGZlYXR1cmVkAAAAAAhERUxJU1RFRAIAAAAIZGVsaXN0ZWQBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABdAUAAAAHJG1hdGNoMAUAAAABdAAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQFAAAABE5PTkUFAAAAA3N0cgEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9wcmljZQEAAAARZ2V0VmFsdWVJdGVtUHJpY2UAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABBQAAAARpdGVtAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAABXwUAAAAEdXNlcgIAAAAEX2NudAEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAABHVzZXIFAAAABGl0ZW0BAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABXRpdGxlCQABLAAAAAICAAAABWl0ZW1fCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAFX2RhdGEBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAZfb3duZXIBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQABLAAAAAIFAAAAB2FjY291bnQCAAAACF9iYWxhbmNlAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQBAAAADGdldEtleUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAAdfY29tbWl0AQAAAA5nZXRWYWx1ZUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAMZ2V0S2V5Q29tbWl0AAAAAgUAAAAEaXRlbQUAAAAEdXNlcgEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19jb21jbnQBAAAAFGdldFZhbHVlQ29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQUAAAAEaXRlbQEAAAAMZ2V0S2V5UmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAAAV8FAAAABHVzZXICAAAAB19yZXZlYWwBAAAADmdldFZhbHVlUmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlSZXZlYWwAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19zdGF0dXMBAAAAEmdldFZhbHVlSXRlbVN0YXR1cwAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAQAAAA9nZXRLZXlWb3RlQ291bnQAAAACAAAABGl0ZW0AAAAEdm90ZQkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAABV9yZXM6BQAAAAR2b3RlAQAAABFnZXRWYWx1ZVZvdGVDb3VudAAAAAIAAAAEaXRlbQAAAAR2b3RlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAPZ2V0S2V5Vm90ZUNvdW50AAAAAgUAAAAEaXRlbQUAAAAEdm90ZQAAAAALQkxBQ0tMSVNURUQCAAAACWJsYWNrbGlzdAEAAAATZ2V0RXh0QWRkcmVzc09yYWNsZQAAAAAJAQAAAAdleHRyYWN0AAAAAQkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQIAAAAjM01zTVZQRnJpMVNmYXdtVFJQUTR6cHFRemFNM0FkRzhQczQBAAAAHGdldEV4dEtleUl0ZW1XaGl0ZWxpc3RTdGF0dXMAAAABAAAAB2FjY291bnQJAAEsAAAAAgUAAAAHYWNjb3VudAIAAAAQX3ZlcmlmaWVyX3N0YXR1cwEAAAAeZ2V0RXh0VmFsdWVJdGVtV2hpdGVsaXN0U3RhdHVzAAAAAgAAAAZvcmFjbGUAAAAHYWNjb3VudAQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABm9yYWNsZQkBAAAAHGdldEV4dEtleUl0ZW1XaGl0ZWxpc3RTdGF0dXMAAAABBQAAAAdhY2NvdW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQFAAAABE5PTkUFAAAAA3N0cgAAAAUAAAABaQEAAAAHYWRkSXRlbQAAAAMAAAAFdGl0bGUAAAAFcHJpY2UAAAAEZGF0YQQAAAAPc3VwcGxpZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABGl0ZW0JAQAAAApnZXRLZXlJdGVtAAAAAgUAAAAPc3VwcGxpZXJBZGRyZXNzBQAAAAV0aXRsZQQAAAARc3VwcGxpZXJXaGl0ZWxpc3QJAQAAAB5nZXRFeHRWYWx1ZUl0ZW1XaGl0ZWxpc3RTdGF0dXMAAAACCQEAAAATZ2V0RXh0QWRkcmVzc09yYWNsZQAAAAAFAAAAD3N1cHBsaWVyQWRkcmVzcwMJAABnAAAAAgAAAAAAAAAAAAUAAAAFcHJpY2UJAAACAAAAAQIAAAAucHVyY2hhc2UgYW1vdW50IGNhbm5vdCBiZSBsZXNzIHRoYW4gaXRlbSBwcmljZQMJAQAAAAIhPQAAAAIJAQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0FAAAABE5PTkUJAAACAAAAAQIAAAAYYW4gaXRlbSBpcyBhbHJlYWR5IGV4aXN0AwkAAAAAAAACBQAAABFzdXBwbGllcldoaXRlbGlzdAUAAAALQkxBQ0tMSVNURUQJAAACAAAAAQIAAAAnc3VwcGxpZXIncyBhY2NvdW50IGhhcyBiZWVuIGJsYWNrbGlzdGVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAPc3VwcGxpZXJBZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQUAAAAEaXRlbQUAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEFAAAABGl0ZW0FAAAABGRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABxnZXRFeHRLZXlJdGVtV2hpdGVsaXN0U3RhdHVzAAAAAQUAAAAPc3VwcGxpZXJBZGRyZXNzBQAAABFzdXBwbGllcldoaXRlbGlzdAUAAAADbmlsAAAAAWkBAAAACHB1cmNoYXNlAAAAAQAAAAdpdGVtS2V5BAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAgY2FuIHVzZSBXQVZFUyBvbmx5IGF0IHRoZSBtb21lbnQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAAdpdGVtS2V5CQAAAgAAAAECAAAAFFlvdSBtdXN0IHNlbGVjdCBJdGVtBAAAAA9jdXN0b21lckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAFcHJpY2UJAQAAABFnZXRWYWx1ZUl0ZW1QcmljZQAAAAEFAAAAB2l0ZW1LZXkEAAAAD3N1cHBsaWVyQWRkcmVzcwkBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQUAAAAHaXRlbUtleQMJAABmAAAAAgUAAAAFcHJpY2UIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAALXB1cmNoYXNlIGFtb3VuIGNhbm5vdCBiZSBsZXNzIHRoYW4gaXRlbSBwcmljZQMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAABXByaWNlCQAAAgAAAAECAAAAL3B1cmNoYXNlIGFtb3VuIGNhbm5vdCBiZSBoaWdoZXIgdGhhbiBpdGVtIHByaWNlAwkAAAAAAAACBQAAAA9zdXBwbGllckFkZHJlc3MFAAAABE5PTkUJAAACAAAAAQIAAAAXc3VwcGxpZXIgZG9lcyBub3QgZXhpc3QJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAA9jdXN0b21lckFkZHJlc3MFAAAAB2l0ZW1LZXkJAABkAAAAAgkBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgUAAAAPY3VzdG9tZXJBZGRyZXNzBQAAAAdpdGVtS2V5AAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAPc3VwcGxpZXJBZGRyZXNzCQAAZAAAAAIJAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAD3N1cHBsaWVyQWRkcmVzcwgFAAAAA3BtdAAAAAZhbW91bnQFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAAEAAAAD3N1cHBsaWVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAdiYWxhbmNlCQEAAAAXZ2V0VmFsdWVCYWxhbmNlU3VwcGxpZXIAAAABBQAAAA9zdXBwbGllckFkZHJlc3MDCQAAZwAAAAIAAAAAAAAAAAAFAAAAB2JhbGFuY2UJAAACAAAAAQIAAAATbm8gbW9uZXkgLSBubyBob25leQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAA9zdXBwbGllckFk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", "height": 1800989, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6MLzuSYQELcgAbYN5moBQUyQP9ykZHDuagPWX24e91y8 Next: none Diff:
OldNewDifferences
141141 then throw("an item is already exist")
142142 else if ((supplierWhitelist == BLACKLISTED))
143143 then throw("supplier's account has been blacklisted")
144- else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
144+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data), DataEntry(getExtKeyItemWhitelistStatus(supplierAddress), supplierWhitelist)])
145145 }
146146
147147
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ownerPublicKey = base58'HtiJZF4j7Jo8jR12wxtKDkNhS3qCe3qsk8QxnnjVvXyq'
55
66 let pubKeyAlice = base58'HtiJZF4j7Jo8jR12wxtKDkNhS3qCe3qsk8QxnnjVvXyq'
77
88 let pubKeyBob = base58'B1R7zeh6VgTv4Xxe3aHhdoZ9aQgWcqN8LFC9smacE96r'
99
1010 let pubKeyCooper = base58'EisxKQktzqqd4UsxE7UgVjSHqoWindUpjoB7dsDwfG4o'
1111
1212 let assetBlackTABAddress = base58'9RUtsAwNGkSSc5f8tV9LCW59MkPX5VqhJ3BNz9qitTb8'
1313
1414 let assetBlackTAB2Address = base58'AUMWXVM9PSZqQyrDkQ9NbACA4L71snABt2X5MFCdVRA7'
1515
1616 let assetBlackIceCouponAddress = base58'B31E31drYWu5gAcxeju5ucL5o88UhyinjAwfXwUQG8PZ'
1717
1818 let NONE = "none"
1919
2020 let VOTERS = 3
2121
2222 let QUORUM = 2
2323
2424 let VOTING = "voting"
2525
2626 let REVEAL = "reveal"
2727
2828 let FEATURED = "featured"
2929
3030 let DELISTED = "delisted"
3131
3232 func getNumberByKey (key) = {
3333 let num = match getInteger(this, key) {
3434 case t: Int =>
3535 t
3636 case _ =>
3737 0
3838 }
3939 num
4040 }
4141
4242
4343 func getStrByKey (key) = {
4444 let str = match getString(this, key) {
4545 case t: String =>
4646 t
4747 case _ =>
4848 NONE
4949 }
5050 str
5151 }
5252
5353
5454 func getKeyItemPrice (item) = (item + "_price")
5555
5656
5757 func getValueItemPrice (item) = getNumberByKey(getKeyItemPrice(item))
5858
5959
6060 func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
6161
6262
6363 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
6464
6565
6666 func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
6767
6868
6969 func getKeyItemData (item) = (item + "_data")
7070
7171
7272 func getKeyItemSupplier (item) = (item + "_owner")
7373
7474
7575 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
7676
7777
7878 func getKeyBalanceSupplier (account) = (account + "_balance")
7979
8080
8181 func getValueBalanceSupplier (account) = getNumberByKey(getKeyBalanceSupplier(account))
8282
8383
8484 func getKeyCommit (item,user) = (((item + "_") + user) + "_commit")
8585
8686
8787 func getValueCommit (item,user) = getStrByKey(getKeyCommit(item, user))
8888
8989
9090 func getKeyCommitsCount (item) = (item + "_comcnt")
9191
9292
9393 func getValueCommitsCount (item) = getNumberByKey(getKeyCommitsCount(item))
9494
9595
9696 func getKeyReveal (item,user) = (((item + "_") + user) + "_reveal")
9797
9898
9999 func getValueReveal (item,user) = getStrByKey(getKeyReveal(item, user))
100100
101101
102102 func getKeyItemStatus (item) = (item + "_status")
103103
104104
105105 func getValueItemStatus (item) = getStrByKey(getKeyItemStatus(item))
106106
107107
108108 func getKeyVoteCount (item,vote) = ((item + "_res:") + vote)
109109
110110
111111 func getValueVoteCount (item,vote) = getNumberByKey(getKeyVoteCount(item, vote))
112112
113113
114114 let BLACKLISTED = "blacklist"
115115
116116 func getExtAddressOracle () = extract(addressFromString("3MsMVPFri1SfawmTRPQ4zpqQzaM3AdG8Ps4"))
117117
118118
119119 func getExtKeyItemWhitelistStatus (account) = (account + "_verifier_status")
120120
121121
122122 func getExtValueItemWhitelistStatus (oracle,account) = {
123123 let str = match getString(oracle, getExtKeyItemWhitelistStatus(account)) {
124124 case t: String =>
125125 t
126126 case _ =>
127127 NONE
128128 }
129129 str
130130 }
131131
132132
133133 @Callable(i)
134134 func addItem (title,price,data) = {
135135 let supplierAddress = toBase58String(i.caller.bytes)
136136 let item = getKeyItem(supplierAddress, title)
137137 let supplierWhitelist = getExtValueItemWhitelistStatus(getExtAddressOracle(), supplierAddress)
138138 if ((0 >= price))
139139 then throw("purchase amount cannot be less than item price")
140140 else if ((getValueItemSupplier(item) != NONE))
141141 then throw("an item is already exist")
142142 else if ((supplierWhitelist == BLACKLISTED))
143143 then throw("supplier's account has been blacklisted")
144- else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
144+ else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data), DataEntry(getExtKeyItemWhitelistStatus(supplierAddress), supplierWhitelist)])
145145 }
146146
147147
148148
149149 @Callable(i)
150150 func purchase (itemKey) = {
151151 let pmt = extract(i.payment)
152152 if (isDefined(pmt.assetId))
153153 then throw("can use WAVES only at the moment")
154154 else if (!(isDefined(itemKey)))
155155 then throw("You must select Item")
156156 else {
157157 let customerAddress = toBase58String(i.caller.bytes)
158158 let price = getValueItemPrice(itemKey)
159159 let supplierAddress = getValueItemSupplier(itemKey)
160160 if ((price > pmt.amount))
161161 then throw("purchase amoun cannot be less than item price")
162162 else if ((pmt.amount > price))
163163 then throw("purchase amoun cannot be higher than item price")
164164 else if ((supplierAddress == NONE))
165165 then throw("supplier does not exist")
166166 else WriteSet([DataEntry(getKeyUserItemCounter(customerAddress, itemKey), (getValueUserItemCounter(customerAddress, itemKey) + 1)), DataEntry(getKeyBalanceSupplier(supplierAddress), (getValueBalanceSupplier(supplierAddress) + pmt.amount))])
167167 }
168168 }
169169
170170
171171
172172 @Callable(i)
173173 func withdraw () = {
174174 let supplierAddress = toBase58String(i.caller.bytes)
175175 let balance = getValueBalanceSupplier(supplierAddress)
176176 if ((0 >= balance))
177177 then throw("no money - no honey")
178178 else ScriptResult(WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(supplierAddress), balance, unit)]))
179179 }
180180
181181
182182
183183 @Callable(i)
184184 func voteCommit (item,hash) = if ((getKeyItemSupplier(item) == NONE))
185185 then throw("item does not exist")
186186 else {
187187 let user = toBase58String(i.caller.bytes)
188188 let commits = getValueCommitsCount(item)
189189 let status = getValueItemStatus(item)
190190 if ((commits >= VOTERS))
191191 then throw("reached max num of voters")
192192 else if ((getValueCommit(item, user) != NONE))
193193 then throw("user has already participated")
194194 else if (if ((status != NONE))
195195 then (status != VOTING)
196196 else false)
197197 then throw("voting is not possible")
198198 else WriteSet([DataEntry(getKeyCommit(item, user), hash), DataEntry(getKeyCommitsCount(item), (commits + 1)), DataEntry(getKeyItemStatus(item), if (((commits + 1) == VOTERS))
199199 then REVEAL
200200 else VOTING)])
201201 }
202202
203203
204204
205205 @Callable(i)
206206 func voteReveal (item,vote,salt) = if ((getKeyItemSupplier(item) == NONE))
207207 then throw("item does not exist")
208208 else {
209209 let user = toBase58String(i.caller.bytes)
210210 let status = getValueItemStatus(item)
211211 let newVoteCount = (getValueVoteCount(item, vote) + 1)
212212 if ((toBase58String(sha256(toBytes((vote + salt)))) != getValueCommit(item, user)))
213213 then throw("reveal data not valid")
214214 else if ((VOTERS > getValueCommitsCount(item)))
215215 then throw("max num of voters hasn't reached yet")
216216 else if ((getValueReveal(item, user) != NONE))
217217 then throw("user has already participated")
218218 else if (if ((status != VOTING))
219219 then (status != REVEAL)
220220 else false)
221221 then throw("wrong status")
222222 else if (if ((vote != FEATURED))
223223 then (vote != DELISTED)
224224 else false)
225225 then throw("wrong vote")
226226 else if (if ((status == FEATURED))
227227 then true
228228 else (status == DELISTED))
229229 then throw("vote has finished")
230230 else WriteSet([DataEntry(getKeyReveal(item, user), vote), DataEntry(getKeyVoteCount(item, vote), newVoteCount), DataEntry(getKeyItemStatus(item), if ((newVoteCount >= QUORUM))
231231 then vote
232232 else REVEAL)])
233233 }
234234
235235
236236 @Verifier(tx)
237237 func verify () = {
238238 let signedAlice = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyAlice))
239239 then true
240240 else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyAlice))
241241 then true
242242 else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyAlice))
243243 then 1
244244 else 0
245245 let signedBob = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyBob))
246246 then true
247247 else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyBob))
248248 then true
249249 else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyBob))
250250 then 1
251251 else 0
252252 let signedCooper = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyCooper))
253253 then true
254254 else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyCooper))
255255 then true
256256 else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyCooper))
257257 then 1
258258 else 0
259259 match tx {
260260 case d: SetScriptTransaction =>
261261 sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
262262 case d: DataTransaction =>
263263 true
264264 case _ =>
265265 (((signedAlice + signedBob) + signedCooper) >= 2)
266266 }
267267 }
268268

github/deemru/w8io/873ac7e 
32.75 ms