tx · 2QXgFquoUeys2yAVxGyHtkNcJnV64aTUKopy7cp3JwiS

3MxJx6npysQdoyyxLsCCb3Yg8fTeH3gEQQd:  -0.01000000 Waves

2023.12.05 02:44 [2872584] smart account 3MxJx6npysQdoyyxLsCCb3Yg8fTeH3gEQQd > SELF 0.00000000 Waves

{ "type": 13, "id": "2QXgFquoUeys2yAVxGyHtkNcJnV64aTUKopy7cp3JwiS", "fee": 1000000, "feeAssetId": null, "timestamp": 1701733447153, "version": 2, "chainId": 84, "sender": "3MxJx6npysQdoyyxLsCCb3Yg8fTeH3gEQQd", "senderPublicKey": "EEhsp9Jd5MwVmYJMGAZJL3tTb5KcurTz8Aw7wksZuw3e", "proofs": [ "26ATMPBi4v34dSwYqHKNBTWYfjoxpEx9rL8gteoVZ3EcWcb8dtGXH6qjKCK4954Rg5L4LVNGVEF4pHdRtKirS5NZ" ], "script": "base64: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IGNhbm5vdCBiZSBsZXNzIHRoYW4gaXRlbSBwcmljZQMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAABXByaWNlCQAAAgAAAAECAAAAMHB1cmNoYXNlIGFtb3VudCBjYW5ub3QgYmUgaGlnaGVyIHRoYW4gaXRlbSBwcmljZQMJAAAAAAAAAgUAAAAOc3VwcGxpZXJBZGRyc3MFAAAABE5PTkUJAAACAAAAAQIAAAAXc3VwcGxpZXIgZG9lcyBub3QgZXhpc3QJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQkAAGQAAAACCQEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAADnN1cHBsaWVyQWRkcnNzCQAAZAAAAAIJAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEFAAAADnN1cHBsaWVyQWRkcnNzCAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAAQAAAAPc3VwcGxpZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAB2JhbGFuY2UJAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEFAAAAD3N1cHBsaWVyQWRkcmVzcwMJAABnAAAAAgAAAAAAAAAAAAUAAAAHYmFsYW5jZQkAAAIAAAABAgAAABRpbnN1ZmZpY2llbnQgYmFsYW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAA9zdXBwbGllckFkZHJlc3MAAAAAAAAAAAAFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0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", "height": 2872584, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FFussmiXCP32vc5JEDnmwpGyEDiAk693JGb1wkkykxkM Next: 3a4gE6GrCBAjUoGRSmfB6eMJonDPYXzzHaGny4bCrpWh Diff:
OldNewDifferences
8585
8686
8787 @Callable(i)
88+func withdraw () = {
89+ let supplierAddress = toBase58String(i.caller.bytes)
90+ let balance = getValueBalanceSupplier(supplierAddress)
91+ if ((0 >= balance))
92+ then throw("insufficient balance")
93+ else ScriptResult(WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(supplierAddress), balance, unit)]))
94+ }
95+
96+
97+
98+@Callable(i)
8899 func x_purchase () = {
89100 let pmt = extract(i.payment)
90101 if (isDefined(pmt.assetId))
134145
135146
136147 @Callable(i)
137-func withdraw (amount) = {
148+func x_withdraw (amount) = {
138149 let currentKey = toBase58String(i.caller.bytes)
139150 let currentAmount = match getInteger(this, (BALANCE + currentKey)) {
140151 case a: Int =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let acc1PubKey = base58'FgdjGJ4tLFiavKEKf4WkWwkgvU8ARWP1WYZfmUrXo4CY'
55
66 let acc2PubKey = base58'EEhsp9Jd5MwVmYJMGAZJL3tTb5KcurTz8Aw7wksZuw3e'
77
88 let acc3PubKey = base58'6SdykacJeMCbeNvVJY71gWMJeXt9ZT44X4KexwZxHEYz'
99
1010 let NONE = "none"
1111
1212 let BALANCE = "balance_"
1313
1414 func getNumberByKey (key) = {
1515 let num = match getInteger(this, key) {
1616 case a: Int =>
1717 a
1818 case _ =>
1919 0
2020 }
2121 num
2222 }
2323
2424
2525 func getStrByKey (key) = {
2626 let str = match getString(this, key) {
2727 case a: String =>
2828 a
2929 case _ =>
3030 NONE
3131 }
3232 str
3333 }
3434
3535
3636 func getKeyItemPrice (item) = (item + "_price")
3737
3838
3939 func getValueItemPrice (item) = getNumberByKey(getKeyItemPrice(item))
4040
4141
4242 func getKeyUserItemCounter (user,item) = (((item + "_") + user) + "_cnt")
4343
4444
4545 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
4646
4747
4848 func getKeyItem (supplier,title) = ("item_" + toBase58String(sha256(toBytes((supplier + title)))))
4949
5050
5151 func getKeyItemData (item) = (item + "_data")
5252
5353
5454 func getKeyItemSupplier (item) = (item + "_owner")
5555
5656
5757 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
5858
5959
6060 func getKeyBalanceSupplier (account) = (account + "_balance")
6161
6262
6363 func getValueBalanceSupplier (account) = getNumberByKey(getKeyBalanceSupplier(account))
6464
6565
6666 @Callable(i)
6767 func purchase (item) = {
6868 let pmt = extract(i.payment)
6969 if (isDefined(pmt.assetId))
7070 then throw("WAVES tokens only at the moment")
7171 else {
7272 let userAddress = toBase58String(i.caller.bytes)
7373 let price = getValueItemPrice(item)
7474 let supplierAddrss = getValueItemSupplier(item)
7575 if ((price > pmt.amount))
7676 then throw("purchase amount cannot be less than item price")
7777 else if ((pmt.amount > price))
7878 then throw("purchase amount cannot be higher than item price")
7979 else if ((supplierAddrss == NONE))
8080 then throw("supplier does not exist")
8181 else WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceSupplier(supplierAddrss), (getValueBalanceSupplier(supplierAddrss) + pmt.amount))])
8282 }
8383 }
8484
8585
8686
8787 @Callable(i)
88+func withdraw () = {
89+ let supplierAddress = toBase58String(i.caller.bytes)
90+ let balance = getValueBalanceSupplier(supplierAddress)
91+ if ((0 >= balance))
92+ then throw("insufficient balance")
93+ else ScriptResult(WriteSet([DataEntry(getKeyBalanceSupplier(supplierAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(supplierAddress), balance, unit)]))
94+ }
95+
96+
97+
98+@Callable(i)
8899 func x_purchase () = {
89100 let pmt = extract(i.payment)
90101 if (isDefined(pmt.assetId))
91102 then throw("can use WAVES only at the moment")
92103 else {
93104 let customerAddress = toBase58String(i.caller.bytes)
94105 let price = match getInteger(this, "item_A_coupon_price") {
95106 case a: Int =>
96107 a
97108 case _ =>
98109 0
99110 }
100111 if ((price > pmt.amount))
101112 then throw("purchase amount cannot be less than item price")
102113 else if ((pmt.amount > price))
103114 then throw("purchase amount cannot be higher than item price")
104115 else WriteSet([DataEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + customerAddress), price)])
105116 }
106117 }
107118
108119
109120
110121 @Callable(i)
111122 func deposit () = {
112123 let pmt = extract(i.payment)
113124 if (isDefined(pmt.assetId))
114125 then throw("can hodl waves only at the moment")
115126 else {
116127 let currentKey = toBase58String(i.caller.bytes)
117128 let currentAmount = match getInteger(this, currentKey) {
118129 case a: Int =>
119130 a
120131 case _ =>
121132 0
122133 }
123134 let wlStsCurr = match getString(this, ("wl_sts_" + currentKey)) {
124135 case a: String =>
125136 a
126137 case _ =>
127138 throw("User has not deen waitlisted")
128139 }
129140 let newAmount = (currentAmount + pmt.amount)
130141 WriteSet([DataEntry((BALANCE + currentKey), newAmount)])
131142 }
132143 }
133144
134145
135146
136147 @Callable(i)
137-func withdraw (amount) = {
148+func x_withdraw (amount) = {
138149 let currentKey = toBase58String(i.caller.bytes)
139150 let currentAmount = match getInteger(this, (BALANCE + currentKey)) {
140151 case a: Int =>
141152 a
142153 case _ =>
143154 0
144155 }
145156 let newAmount = (currentAmount - amount)
146157 if ((0 > amount))
147158 then throw("Can't withdraw negative amount")
148159 else if ((0 > newAmount))
149160 then throw("Not enough balance")
150161 else ScriptResult(WriteSet([DataEntry((BALANCE + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
151162 }
152163
153164
154165
155166 @Callable(i)
156167 func addItem (title,price,data) = {
157168 let supplierAddress = toBase58String(i.caller.bytes)
158169 let item = getKeyItem(supplierAddress, title)
159170 if ((0 >= price))
160171 then throw("purchase amount cannot be less than item price")
161172 else if ((getValueItemSupplier(item) != NONE))
162173 then throw("an item is already exist")
163174 else WriteSet([DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data)])
164175 }
165176
166177
167178 @Verifier(tx)
168179 func verify () = {
169180 let acc1_1 = sigVerify(tx.bodyBytes, tx.proofs[0], acc1PubKey)
170181 let acc1_2 = sigVerify(tx.bodyBytes, tx.proofs[1], acc1PubKey)
171182 let acc1_3 = sigVerify(tx.bodyBytes, tx.proofs[2], acc1PubKey)
172183 let acc2_1 = sigVerify(tx.bodyBytes, tx.proofs[0], acc2PubKey)
173184 let acc2_2 = sigVerify(tx.bodyBytes, tx.proofs[1], acc2PubKey)
174185 let acc2_3 = sigVerify(tx.bodyBytes, tx.proofs[2], acc2PubKey)
175186 let acc3_1 = sigVerify(tx.bodyBytes, tx.proofs[0], acc3PubKey)
176187 let acc3_2 = sigVerify(tx.bodyBytes, tx.proofs[1], acc3PubKey)
177188 let acc3_3 = sigVerify(tx.bodyBytes, tx.proofs[2], acc3PubKey)
178189 let acc1acc2 = if (if (if (if (if (if (acc1_1)
179190 then acc2_2
180191 else false)
181192 then true
182193 else if (acc1_1)
183194 then acc2_3
184195 else false)
185196 then true
186197 else if (acc1_2)
187198 then acc2_1
188199 else false)
189200 then true
190201 else if (acc1_2)
191202 then acc2_3
192203 else false)
193204 then true
194205 else if (acc1_3)
195206 then acc2_1
196207 else false)
197208 then true
198209 else if (acc1_3)
199210 then acc2_2
200211 else false
201212 let acc1acc3 = if (if (if (if (if (if (acc1_1)
202213 then acc3_2
203214 else false)
204215 then true
205216 else if (acc1_1)
206217 then acc3_3
207218 else false)
208219 then true
209220 else if (acc1_2)
210221 then acc3_1
211222 else false)
212223 then true
213224 else if (acc1_2)
214225 then acc3_3
215226 else false)
216227 then true
217228 else if (acc1_3)
218229 then acc3_1
219230 else false)
220231 then true
221232 else if (acc1_3)
222233 then acc3_2
223234 else false
224235 let acc2acc3 = if (if (if (if (if (if (acc3_1)
225236 then acc2_2
226237 else false)
227238 then true
228239 else if (acc3_1)
229240 then acc2_3
230241 else false)
231242 then true
232243 else if (acc3_2)
233244 then acc2_1
234245 else false)
235246 then true
236247 else if (acc3_2)
237248 then acc2_3
238249 else false)
239250 then true
240251 else if (acc3_3)
241252 then acc2_1
242253 else false)
243254 then true
244255 else if (acc3_3)
245256 then acc2_2
246257 else false
247258 match tx {
248259 case d: SetScriptTransaction =>
249260 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
250261 case d: DataTransaction =>
251262 true
252263 case d: TransferTransaction =>
253264 true
254265 case d: InvokeScriptTransaction =>
255266 true
256267 case _ =>
257268 false
258269 }
259270 }
260271

github/deemru/w8io/6500d08 
50.72 ms