tx · FpA8ECLf6CpFKw8nWqkZXHfCjscYnYETHnPJVtBT89SW

3MtPvdnUJi2Y1azHP6sCJf6TqhFRu53fYFY:  -0.01400000 Waves

2019.08.06 18:00 [619205] smart account 3MtPvdnUJi2Y1azHP6sCJf6TqhFRu53fYFY > SELF 0.00000000 Waves

{ "type": 13, "id": "FpA8ECLf6CpFKw8nWqkZXHfCjscYnYETHnPJVtBT89SW", "fee": 1400000, "feeAssetId": null, "timestamp": 1565103706629, "version": 1, "sender": "3MtPvdnUJi2Y1azHP6sCJf6TqhFRu53fYFY", "senderPublicKey": "2NJJAMMjXiXCHkfJNkYj74tEzPHxMXMz3TpL35QmrATN", "proofs": [ "4cBiTxbWUdEDAQc3cNc79T3Fs4fftwvo2DFL62jYyKKoco77UxG6b3B5H8EiEeHhjTUC2Bahf3d9m3BZQEsBL4cN" ], "script": "base64:AAIDAAAAAAAAAAAAAAAdAAAAAAROT05FAgAAAARub25lAAAAAAZWT1RFUlMAAAAAAAAAAAMAAAAABlFVT1JVTQAAAAAAAAAAAgAAAAAGVk9USU5HAgAAAAZ2b3RpbmcAAAAABlJFVkVBTAIAAAAGcmV2ZWFsAAAAAAhGRUFUVVJFRAIAAAAIZmVhdHVyZWQAAAAACERFTElTVEVEAgAAAAhkZWxpc3RlZAEAAAALZ2V0TnVtQnlLZXkAAAABAAAAA2tleQQAAAADbnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABQAAAANudW0BAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAAxnZXRLZXlDb21taXQAAAACAAAABGl0ZW0AAAAEdXNlcgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAABXwUAAAAEdXNlcgIAAAAHX2NvbW1pdAEAAAASZ2V0S2V5Q29tbWl0Q291bnRzAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19jb21jbnQBAAAADGdldEtleVJldmVhbAAAAAIAAAAEaXRlbQAAAAR1c2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAAdfcmV2ZWFsAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19zdGF0dXMBAAAAD2dldEtleVZvdGVDb3VudAAAAAIAAAAEaXRlbQAAAAR2b3RlCQABLAAAAAIJAAEsAAAAAgUAAAAEaXRlbQIAAAAFX3JlczoFAAAABHZvdGUBAAAADmdldFZhbHVlQ29tbWl0AAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlDb21taXQAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABRnZXRWYWx1ZUNvbW1pdHNDb3VudAAAAAEAAAAEaXRlbQkBAAAAC2dldE51bUJ5S2V5AAAAAQkBAAAAEmdldEtleUNvbW1pdENvdW50cwAAAAEFAAAABGl0ZW0BAAAADmdldFZhbHVlUmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlSZXZlYWwAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABJnZXRWYWx1ZUl0ZW1TdGF0dXMAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQUAAAAEaXRlbQEAAAARZ2V0VmFsdWVWb3RlQ291bnQAAAACAAAABGl0ZW0AAAAEdXNlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQkBAAAAD2dldEtleVZvdGVDb3VudAAAAAIFAAAABGl0ZW0FAAAABHVzZXIBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAARfY250AQAAAApnZXRLZXlJdGVtAAAAAgAAAAhzdXBwbGllcgAAAAV0aXRsZQkAASwAAAACAgAAAARpdGVtCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9vd25lcgEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAABl9wcmljZQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAFX2RhdGEBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAARZ2V0VmFsdWVJdGVtUHJpY2UAAAABAAAABGl0ZW0JAQAAAAtnZXROdW1CeUtleQAAAAEJAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABBQAAAARpdGVtAQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAALZ2V0TnVtQnlLZXkAAAABCQEAAAAPZ2V0S2V5SXRlbVByaWNlAAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQABLAAAAAIFAAAAB2FjY291bnQCAAAACF9iYWxhbmNlAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAHYWNjb3VudAkBAAAAC2dldE51bUJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAB2FjY291bnQAAAAGAAAAAWkBAAAACHB1cmNoYXNlAAAAAQAAAARpdGVtBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAhQ2FuIHVzZSBvbmx5IFdBVkVTIGF0IHRoZSBtb21lbnQuBAAAAA9jdXN0b21lckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAFcHJpY2UJAQAAABFnZXRWYWx1ZUl0ZW1QcmljZQAAAAEFAAAABGl0ZW0EAAAAD3N1cHBsaWVyQWRkcmVzcwkBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQMJAABmAAAAAgUAAAAFcHJpY2UIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAPUFtb3VudCBjYW5ub3QgYmUgbGVzcyB0aGFuIGl0ZW0gcHJpY2UuIFlvdSBzcGVjaWZpZWQgYW1vdW50OiAJAAGkAAAAAQgFAAAAA3BtdAAAAAZhbW91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", "chainId": 84, "height": 619205, "spentComplexity": 0 } View: original | compacted Prev: Coi61GAyMtC1MFSqq2rGEDwiVbvwKMkVK4iUynLkTrwk Next: ECR9kKWfYGGPQ57Q6DR5mtPcNnVxNm212TaFyAPk9RDX Diff:
OldNewDifferences
132132
133133
134134 @Callable(i)
135+func deposit () = {
136+ let GNAK = base58'5LTW6Yt7iSwFdCKfPPcjvPpKWp4n6LstRHLT5REsrybg'
137+ let pmt = extract(i.payment)
138+ if ((pmt.assetId != GNAK))
139+ then throw("Sorry we accept only GNAK here.")
140+ else {
141+ let currentKey = toBase58String(i.caller.bytes)
142+ let currentAmount = match getInteger(this, currentKey) {
143+ case a: Int =>
144+ a
145+ case _ =>
146+ 0
147+ }
148+ let newAmount = (currentAmount + pmt.amount)
149+ WriteSet([DataEntry(currentKey, newAmount)])
150+ }
151+ }
152+
153+
154+
155+@Callable(i)
135156 func withdraw () = {
136157 let supplierAddress = toBase58String(i.caller.bytes)
137158 let balance = getValueBalanceSupplier(supplierAddress)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let NONE = "none"
55
66 let VOTERS = 3
77
88 let QUORUM = 2
99
1010 let VOTING = "voting"
1111
1212 let REVEAL = "reveal"
1313
1414 let FEATURED = "featured"
1515
1616 let DELISTED = "delisted"
1717
1818 func getNumByKey (key) = {
1919 let num = match getInteger(this, key) {
2020 case a: Int =>
2121 a
2222 case _ =>
2323 0
2424 }
2525 num
2626 }
2727
2828
2929 func getStrByKey (key) = {
3030 let str = match getString(this, key) {
3131 case a: String =>
3232 a
3333 case _ =>
3434 NONE
3535 }
3636 str
3737 }
3838
3939
4040 func getKeyCommit (item,user) = (((item + "_") + user) + "_commit")
4141
4242
4343 func getKeyCommitCounts (item) = (item + "_comcnt")
4444
4545
4646 func getKeyReveal (item,user) = (((item + "_") + user) + "_reveal")
4747
4848
4949 func getKeyItemStatus (item) = (item + "_status")
5050
5151
5252 func getKeyVoteCount (item,vote) = ((item + "_res:") + vote)
5353
5454
5555 func getValueCommit (item,user) = getStrByKey(getKeyCommit(item, user))
5656
5757
5858 func getValueCommitsCount (item) = getNumByKey(getKeyCommitCounts(item))
5959
6060
6161 func getValueReveal (item,user) = getStrByKey(getKeyReveal(item, user))
6262
6363
6464 func getValueItemStatus (item) = getStrByKey(getKeyItemStatus(item))
6565
6666
6767 func getValueVoteCount (item,user) = getNumByKey(getKeyVoteCount(item, user))
6868
6969
7070 func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
7171
7272
7373 func getKeyItem (supplier,title) = ("item" + toBase58String(sha256(toBytes((supplier + title)))))
7474
7575
7676 func getKeyItemSupplier (item) = (item + "_owner")
7777
7878
7979 func getKeyItemPrice (item) = (item + "_price")
8080
8181
8282 func getKeyItemData (item) = (item + "_data")
8383
8484
8585 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
8686
8787
8888 func getValueItemPrice (item) = getNumByKey(getKeyItemPrice(item))
8989
9090
9191 func getValueUserItemCounter (user,item) = getNumByKey(getKeyItemPrice(item))
9292
9393
9494 func getKeyBalanceSupplier (account) = (account + "_balance")
9595
9696
9797 func getValueBalanceSupplier (account) = getNumByKey(getKeyBalanceSupplier(account))
9898
9999
100100 @Callable(i)
101101 func purchase (item) = {
102102 let pmt = extract(i.payment)
103103 if (isDefined(pmt.assetId))
104104 then throw("Can use only WAVES at the moment.")
105105 else {
106106 let customerAddress = toBase58String(i.caller.bytes)
107107 let price = getValueItemPrice(item)
108108 let supplierAddress = getValueItemSupplier(item)
109109 if ((price > pmt.amount))
110110 then throw(((("Amount cannot be less than item price. You specified amount: " + toString(pmt.amount)) + "but price is ") + toString(price)))
111111 else if ((pmt.amount > price))
112112 then throw(((((("Amount cannot be greater than item price. You specified amount: " + toString(pmt.amount)) + " but price of item: ") + item) + " is ") + toString(price)))
113113 else if ((supplierAddress == NONE))
114114 then throw("Supplier not found.")
115115 else WriteSet([DataEntry(getKeyUserItemCounter(customerAddress, item), (getValueUserItemCounter(customerAddress, item) + 1)), DataEntry(getKeyBalanceSupplier(supplierAddress), (getValueBalanceSupplier(supplierAddress) + pmt.amount))])
116116 }
117117 }
118118
119119
120120
121121 @Callable(i)
122122 func addItem (title,price,data) = {
123123 let supplierAddress = toBase58String(i.caller.bytes)
124124 let item = getKeyItem(supplierAddress, title)
125125 if ((0 >= price))
126126 then throw("Price must be positive.")
127127 else if ((getValueItemSupplier(item) != NONE))
128128 then throw("An item like this already exists.")
129129 else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
130130 }
131131
132132
133133
134134 @Callable(i)
135+func deposit () = {
136+ let GNAK = base58'5LTW6Yt7iSwFdCKfPPcjvPpKWp4n6LstRHLT5REsrybg'
137+ let pmt = extract(i.payment)
138+ if ((pmt.assetId != GNAK))
139+ then throw("Sorry we accept only GNAK here.")
140+ else {
141+ let currentKey = toBase58String(i.caller.bytes)
142+ let currentAmount = match getInteger(this, currentKey) {
143+ case a: Int =>
144+ a
145+ case _ =>
146+ 0
147+ }
148+ let newAmount = (currentAmount + pmt.amount)
149+ WriteSet([DataEntry(currentKey, newAmount)])
150+ }
151+ }
152+
153+
154+
155+@Callable(i)
135156 func withdraw () = {
136157 let supplierAddress = toBase58String(i.caller.bytes)
137158 let balance = getValueBalanceSupplier(supplierAddress)
138159 if ((0 >= balance))
139160 then throw("Insufficient Balance")
140161 else ScriptResult(WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(supplierAddress), balance, unit)]))
141162 }
142163
143164
144165
145166 @Callable(i)
146167 func voteCommit (item,hash,user) = {
147168 let commits = getValueCommitsCount(item)
148169 let status = getValueItemStatus(item)
149170 if ((commits >= VOTERS))
150171 then throw("Reached max n. of votes")
151172 else if ((getValueCommit(item, user) != NONE))
152173 then throw((("User " + user) + " already voted for this item"))
153174 else if ((getKeyItemSupplier(item) == NONE))
154175 then throw("Item does not exist")
155176 else if (if ((status != NONE))
156177 then (status != VOTING)
157178 else false)
158179 then throw("It is not possible to vote now.")
159180 else WriteSet([DataEntry(getKeyCommit(item, user), hash), DataEntry(getKeyCommitCounts(item), (commits + 1)), DataEntry(getKeyItemStatus(item), if ((commits == VOTERS))
160181 then REVEAL
161182 else VOTING)])
162183 }
163184
164185
165186
166187 @Callable(i)
167188 func voteReveal (item,vote,salt,user) = {
168189 let status = getValueItemStatus(item)
169190 let commits = getValueCommitsCount(item)
170191 let newVoteCount = (getValueVoteCount(item, vote) + 1)
171192 if ((toBase58String(sha256(toBytes((vote + salt)))) != getValueCommit(item, user)))
172193 then throw((("Revealed Data for user " + user) + " is not valid."))
173194 else if ((VOTERS > commits))
174195 then throw("Reached max n. of votes")
175196 else if ((getValueReveal(item, user) != NONE))
176197 then throw((("User " + user) + " has already participated"))
177198 else if (if ((status != REVEAL))
178199 then (status != VOTING)
179200 else false)
180201 then throw("Wrong votation phase.")
181202 else if (if ((vote != FEATURED))
182203 then (vote != DELISTED)
183204 else false)
184205 then throw("Wrong vote value.")
185206 else if (if ((status == FEATURED))
186207 then true
187208 else (status == DELISTED))
188209 then throw("Vote has finished.")
189210 else WriteSet([DataEntry(getKeyReveal(item, user), vote), DataEntry(getKeyVoteCount(item, vote), newVoteCount), DataEntry(getKeyItemStatus(item), if ((newVoteCount >= QUORUM))
190211 then vote
191212 else VOTING)])
192213 }
193214
194215

github/deemru/w8io/169f3d6 
37.88 ms