tx · DBHNdfuBXN9ekfFvyoKMKJisbZTiRMWAptjRp1aeq2V6

3N5q1m8whV3SztrPuN3z5sbKsEm3ZeSYF2T:  -0.01600000 Waves

2024.06.07 14:28 [3140221] smart account 3N5q1m8whV3SztrPuN3z5sbKsEm3ZeSYF2T > SELF 0.00000000 Waves

{ "type": 13, "id": "DBHNdfuBXN9ekfFvyoKMKJisbZTiRMWAptjRp1aeq2V6", "fee": 1600000, "feeAssetId": null, "timestamp": 1717759717527, "version": 2, "chainId": 84, "sender": "3N5q1m8whV3SztrPuN3z5sbKsEm3ZeSYF2T", "senderPublicKey": "BNpSmh5j4pzfsxKnEskdG2d4wxQZgbJwnFb5hC7NgrsA", "proofs": [ "AL3pDsqjgaTPSaTfB8LLy6QyKrC8zQtZsdahWof9KGVGtxqNBoUF6jw3uCGSeBKQmYiNFvGQ3qEWT6qWjjBoVGg" ], "script": "base64:AAIFAAAAAAAAADwIAhIDCgEIEgQKAggEEgcKBQgICAgIEgASBAoCCAESBAoCCAESBAoCCAESBAoCCAESCgoICAEBAQEBCAEAAAAZAAAAAAhhZG1pbm1zZwIAAAApRXJyb3I6IE9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiEAAAAADmludmFsaWRBZGRyZXNzAgAAABdFcnJvcjogQWRkcmVzcyBpbnZhbGlkIQAAAAAPaW52YWxpZFRva2VuTXNnAgAAABVFcnJvcjogSW52YWxpZCBBc3NldCEAAAAADW1hdGNoTXNnRXJyb3ICAAAAakVycm9yOiBZb3UgYXJlIGFscmVhZHkgcGFydGljaXBhdGluZyBpbiBhIHJvb20uIFRyeSB0byBlbmQgaXQgb3IgbGVhdmUgdGhlIHJvb20gYnkgYWNjZXNzaW5nICdJbiBQcm9ncmVzcycAAAAACWJhbm5lZG1zZwIAAAA0RXJyb3I6IHRoZSB1c2VyIGhhcyBiZWVuIGJhbm5lZCBieSBhbiBhZG1pbmlzdHJhdG9yLgAAAAAGT3JhY2xlAgAAACMzTXh1ZFhOdHJQRXhOdEc5TXNHVjZlMWtpenV5YmdwaVZxMgAAAAAOcm9vbUV4aXN0RXJyb3ICAAAAcEVycm9yOiBZb3UgYWxyZWFkeSBoYXZlIGEgcHJldmlvdXNseSBjcmVhdGVkIHJvb20uIEdvIHRvICdJbiBQcm9ncmVzcycgYW5kIGNsb3NlIHlvdXIgcm9vbSB0byBjcmVhdGUgYSBuZXcgZ2FtZS4AAAAAD2JhbGFuY2VFcnJvck1zZwIAAABCRXJyb3I6IFlvdSBoYXZlIG5vIGFtb3VudCBkZXBvc2l0ZWQgYXMgYSBjaGlwIGluIHRoZSBwb2tlciBtb2R1bGUuAAAAAA53aGl0aGRyYXdFcnJvcgIAAABURXJyb3I6IEFtb3VudCB5b3Ugd2FudCB0byB3aXRoZHJhdyBncmVhdGVyIHRoYW4gdGhlIGFtb3VudCBhdmFpbGFibGUgZm9yIHdpdGhkcmF3YWwuAAAAABFyb29tRXJyb3JOb3RFeGlzdAIAAAAxRXJyb3I6VGhlIHJvb20geW91IHdhbnQgdG8gam9pbiBubyBsb25nZXIgZXhpc3RzLgAAAAAKZXJyb3JH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", "height": 3140221, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: us41VUCFRavJrc21o4vbyb7ssEtcaVoc7yPuJLjWWk9 Next: FAYupmaeWMfFJG7nJJyiYVAbkDpxmnKXbrtPbR7DG6nG Diff:
OldNewDifferences
210210 @Callable(i)
211211 func leaveRoom (address,heightRoom) = {
212212 let kk = toBase58String(i.caller.bytes)
213- if (isMatch(i.caller.bytes))
214- then throw(matchMsgError)
215- else if (!(isRoomExist(address)))
216- then throw(roomErrorNotExist)
217- else if (!(isGuest(kk, address, heightRoom)))
218- then throw(errorGuest)
219- else if ((address == toBase58String(i.caller.bytes)))
220- then throw(errorMainGuest)
221- else [DeleteEntry((kk + "_isMatch")), DeleteEntry((kk + "_matchIn")), DeleteEntry((kk + "_match_height"))]
213+ if (!(isRoomExist(address)))
214+ then throw(roomErrorNotExist)
215+ else if (!(isGuest(kk, address, heightRoom)))
216+ then throw(errorGuest)
217+ else if ((address == toBase58String(i.caller.bytes)))
218+ then throw(errorMainGuest)
219+ else [DeleteEntry((kk + "_isMatch")), DeleteEntry((kk + "_matchIn")), DeleteEntry((kk + "_match_height"))]
222220 }
223221
224222
226224 @Callable(i)
227225 func CloseRoom (address,heightRoom) = {
228226 let kk = toBase58String(i.caller.bytes)
229- if (isMatch(i.caller.bytes))
230- then throw(matchMsgError)
231- else if (!(isRoomExist(address)))
232- then throw(roomErrorNotExist)
233- else if ((address == toBase58String(i.caller.bytes)))
234- then [DeleteEntry((kk + "_isMatch")), DeleteEntry((kk + "_matchIn")), DeleteEntry((kk + "_match_height")), BooleanEntry(((kk + "_height_") + toString(height)), false), BooleanEntry((kk + "_isMatch"), false), BooleanEntry(kk, false)]
235- else throw(errorCloseRoom)
227+ if (!(isRoomExist(address)))
228+ then throw(roomErrorNotExist)
229+ else if ((address == toBase58String(i.caller.bytes)))
230+ then [DeleteEntry((kk + "_isMatch")), DeleteEntry((kk + "_matchIn")), DeleteEntry((kk + "_match_height")), BooleanEntry(((kk + "_height_") + toString(height)), false), BooleanEntry((kk + "_isMatch"), false), BooleanEntry(kk, false)]
231+ else throw(errorCloseRoom)
236232 }
237233
238234
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminmsg = "Error: Only admin can call this function!"
55
66 let invalidAddress = "Error: Address invalid!"
77
88 let invalidTokenMsg = "Error: Invalid Asset!"
99
1010 let matchMsgError = "Error: You are already participating in a room. Try to end it or leave the room by accessing 'In Progress'"
1111
1212 let bannedmsg = "Error: the user has been banned by an administrator."
1313
1414 let Oracle = "3MxudXNtrPExNtG9MsGV6e1kizuybgpiVq2"
1515
1616 let roomExistError = "Error: You already have a previously created room. Go to 'In Progress' and close your room to create a new game."
1717
1818 let balanceErrorMsg = "Error: You have no amount deposited as a chip in the poker module."
1919
2020 let whithdrawError = "Error: Amount you want to withdraw greater than the amount available for withdrawal."
2121
2222 let roomErrorNotExist = "Error:The room you want to join no longer exists."
2323
2424 let errorGuest = "Error: You have not been invited to join this room."
2525
2626 let errorMainGuest = "Error: You are the creator of the room."
2727
2828 let errorCloseRoom = "Error: Only the room creator can close the room."
2929
3030 func errorTokenInvalidAmount (assetId) = (("Error: You do not have enough chips in the poker module for asset " + assetId) + ". Go to 'Select Token', select the token you are using and click 'Deposit'.")
3131
3232
3333 func isValidToken (tokenId) = if ((tokenId == "WAVES"))
3434 then true
3535 else isDefined(getBoolean(Address(fromBase58String(Oracle)), tokenId))
3636
3737
3838 func convertToken (tokenId) = if ((tokenId == "WAVES"))
3939 then unit
4040 else fromBase58String(tokenId)
4141
4242
4343 func isValidAddress (address) = (addressFromString(address) != unit)
4444
4545
4646 func isGuest (address,Room,heightRoom) = {
4747 let address1 = getStringValue(((("address1_" + Room) + "_") + toString(heightRoom)))
4848 let address2 = getStringValue(((("address2_" + Room) + "_") + toString(heightRoom)))
4949 let address3 = getStringValue(((("address3_" + Room) + "_") + toString(heightRoom)))
5050 let address4 = getStringValue(((("address4_" + Room) + "_") + toString(heightRoom)))
5151 if (if (if ((address == address1))
5252 then true
5353 else (address == address2))
5454 then true
5555 else (address == address3))
5656 then true
5757 else (address == address4)
5858 }
5959
6060
6161 func getBalanceToken (address,tokenId) = if (isDefined(getInteger(((address + "_") + tokenId))))
6262 then getIntegerValue(((address + "_") + tokenId))
6363 else 0
6464
6565
6666 func tokenRoom (address,heightRoom) = getStringValue((((address + "_height_") + toString(heightRoom)) + "_token"))
6767
6868
6969 func isSufficientBalance (address,tokenId) = (getBalanceToken(address, tokenId) > 0)
7070
7171
7272 func isAdmin (address) = {
7373 let c = toBase58String(address)
7474 if (isDefined(getString("admin")))
7575 then if (if ((c == getStringValue("admin")))
7676 then true
7777 else (c == toBase58String(this.bytes)))
7878 then true
7979 else false
8080 else if ((c == toBase58String(this.bytes)))
8181 then true
8282 else false
8383 }
8484
8585
8686 func isMatch (address) = {
8787 let c = toBase58String(address)
8888 if (isDefined(getBoolean((c + "_isMatch"))))
8989 then true
9090 else false
9191 }
9292
9393
9494 func isBanned (address) = if (isDefined(getBoolean((address + "_banned"))))
9595 then getBooleanValue((address + "_banned"))
9696 else false
9797
9898
9999 func isRoomExist (address) = isDefined(getBoolean(address))
100100
101101
102102 @Callable(i)
103103 func addAdmin (address) = if (isAdmin(i.caller.bytes))
104104 then if (isValidAddress(address))
105105 then [StringEntry("admin", address)]
106106 else throw(invalidAddress)
107107 else throw(adminmsg)
108108
109109
110110
111111 @Callable(i)
112112 func ban (address,isBanned) = if (isAdmin(i.caller.bytes))
113113 then if (isValidAddress(address))
114114 then [BooleanEntry((address + "_banned"), isBanned)]
115115 else throw(invalidAddress)
116116 else throw(adminmsg)
117117
118118
119119
120120 @Callable(i)
121121 func new (assetId,address1,address2,address3,address4) = {
122122 let kk = toBase58String(i.caller.bytes)
123123 if (isBanned(kk))
124124 then throw(bannedmsg)
125125 else if (!(isValidToken(assetId)))
126126 then throw(invalidTokenMsg)
127127 else if (isMatch(i.caller.bytes))
128128 then throw(matchMsgError)
129129 else if (!(isSufficientBalance(kk, assetId)))
130130 then throw(errorTokenInvalidAmount(assetId))
131131 else if (isRoomExist(kk))
132132 then throw(roomExistError)
133133 else if (if (if (if (if ((address1 != ""))
134134 then isValidAddress(address1)
135135 else false)
136136 then true
137137 else if ((address2 != ""))
138138 then isValidAddress(address2)
139139 else false)
140140 then true
141141 else if ((address3 != ""))
142142 then isValidAddress(address3)
143143 else false)
144144 then true
145145 else if ((address4 != ""))
146146 then isValidAddress(address4)
147147 else false)
148148 then [BooleanEntry(((kk + "_height_") + toString(height)), true), IntegerEntry((kk + "_height_latest"), height), StringEntry(((("address1_" + kk) + "_") + toString(height)), address1), StringEntry(((("address2_" + kk) + "_") + toString(height)), address2), StringEntry(((("address3_" + kk) + "_") + toString(height)), address3), StringEntry(((("address4_" + kk) + "_") + toString(height)), address4), StringEntry((((kk + "_height_") + toString(height)) + "_token"), assetId), BooleanEntry((kk + "_isMatch"), true), BooleanEntry(kk, true)]
149149 else throw(invalidAddress)
150150 }
151151
152152
153153
154154 @Callable(i)
155155 func Deposit () = {
156156 let tId = match i.payments[0].assetId {
157157 case t: ByteVector =>
158158 toBase58String(t)
159159 case _ =>
160160 "WAVES"
161161 }
162162 let kk = toBase58String(i.caller.bytes)
163163 if (isBanned(kk))
164164 then throw(bannedmsg)
165165 else if (!(isValidToken(tId)))
166166 then throw(invalidTokenMsg)
167167 else if (isMatch(i.caller.bytes))
168168 then throw(matchMsgError)
169169 else [IntegerEntry(((kk + "_") + tId), (i.payments[0].amount + getBalanceToken(kk, tId)))]
170170 }
171171
172172
173173
174174 @Callable(i)
175175 func Withdraw (tId,amount) = {
176176 let kk = toBase58String(i.caller.bytes)
177177 if (isBanned(kk))
178178 then throw(bannedmsg)
179179 else if (!(isValidToken(tId)))
180180 then throw(invalidTokenMsg)
181181 else if (isMatch(i.caller.bytes))
182182 then throw(matchMsgError)
183183 else if ((getBalanceToken(kk, tId) == 0))
184184 then throw(balanceErrorMsg)
185185 else if ((amount > getBalanceToken(kk, tId)))
186186 then throw(whithdrawError)
187187 else [ScriptTransfer(i.caller, amount, convertToken(tId)), IntegerEntry(((kk + "_") + tId), (getBalanceToken(kk, tId) - amount))]
188188 }
189189
190190
191191
192192 @Callable(i)
193193 func join (address,heightRoom) = {
194194 let kk = toBase58String(i.caller.bytes)
195195 if (isBanned(kk))
196196 then throw(bannedmsg)
197197 else if (isMatch(i.caller.bytes))
198198 then throw(matchMsgError)
199199 else if (!(isRoomExist(address)))
200200 then throw(roomErrorNotExist)
201201 else if (!(isSufficientBalance(kk, tokenRoom(address, heightRoom))))
202202 then throw(errorTokenInvalidAmount(tokenRoom(address, heightRoom)))
203203 else if (!(isGuest(kk, address, heightRoom)))
204204 then throw(errorGuest)
205205 else [BooleanEntry((kk + "_isMatch"), true), StringEntry((kk + "_matchIn"), address), IntegerEntry((kk + "_match_height"), heightRoom)]
206206 }
207207
208208
209209
210210 @Callable(i)
211211 func leaveRoom (address,heightRoom) = {
212212 let kk = toBase58String(i.caller.bytes)
213- if (isMatch(i.caller.bytes))
214- then throw(matchMsgError)
215- else if (!(isRoomExist(address)))
216- then throw(roomErrorNotExist)
217- else if (!(isGuest(kk, address, heightRoom)))
218- then throw(errorGuest)
219- else if ((address == toBase58String(i.caller.bytes)))
220- then throw(errorMainGuest)
221- else [DeleteEntry((kk + "_isMatch")), DeleteEntry((kk + "_matchIn")), DeleteEntry((kk + "_match_height"))]
213+ if (!(isRoomExist(address)))
214+ then throw(roomErrorNotExist)
215+ else if (!(isGuest(kk, address, heightRoom)))
216+ then throw(errorGuest)
217+ else if ((address == toBase58String(i.caller.bytes)))
218+ then throw(errorMainGuest)
219+ else [DeleteEntry((kk + "_isMatch")), DeleteEntry((kk + "_matchIn")), DeleteEntry((kk + "_match_height"))]
222220 }
223221
224222
225223
226224 @Callable(i)
227225 func CloseRoom (address,heightRoom) = {
228226 let kk = toBase58String(i.caller.bytes)
229- if (isMatch(i.caller.bytes))
230- then throw(matchMsgError)
231- else if (!(isRoomExist(address)))
232- then throw(roomErrorNotExist)
233- else if ((address == toBase58String(i.caller.bytes)))
234- then [DeleteEntry((kk + "_isMatch")), DeleteEntry((kk + "_matchIn")), DeleteEntry((kk + "_match_height")), BooleanEntry(((kk + "_height_") + toString(height)), false), BooleanEntry((kk + "_isMatch"), false), BooleanEntry(kk, false)]
235- else throw(errorCloseRoom)
227+ if (!(isRoomExist(address)))
228+ then throw(roomErrorNotExist)
229+ else if ((address == toBase58String(i.caller.bytes)))
230+ then [DeleteEntry((kk + "_isMatch")), DeleteEntry((kk + "_matchIn")), DeleteEntry((kk + "_match_height")), BooleanEntry(((kk + "_height_") + toString(height)), false), BooleanEntry((kk + "_isMatch"), false), BooleanEntry(kk, false)]
231+ else throw(errorCloseRoom)
236232 }
237233
238234
239235
240236 @Callable(i)
241237 func setWinner (winner,address1Value,address2Value,address3Value,address4Value,mainAddressValue,addressRoom,heightRoom) = if (isAdmin(i.caller.bytes))
242238 then {
243239 let a = (((address1Value + address2Value) + address3Value) + address4Value)
244240 let address1 = getStringValue(((("address1_" + addressRoom) + "_") + toString(heightRoom)))
245241 let address2 = getStringValue(((("address2_" + addressRoom) + "_") + toString(heightRoom)))
246242 let address3 = getStringValue(((("address3_" + addressRoom) + "_") + toString(heightRoom)))
247243 let address4 = getStringValue(((("address4_" + addressRoom) + "_") + toString(heightRoom)))
248244 [ScriptTransfer(Address(fromBase58String(getStringValue("admin"))), ((a * 4) / 100), convertToken(tokenRoom(addressRoom, heightRoom))), StringEntry((((addressRoom + "_height_") + toString(height)) + "_winner"), winner), BooleanEntry(((addressRoom + "_height_") + toString(height)), false), BooleanEntry((addressRoom + "_isMatch"), false), BooleanEntry(addressRoom, false), DeleteEntry((addressRoom + "_isMatch")), DeleteEntry((addressRoom + "_matchIn")), DeleteEntry((addressRoom + "_match_height")), IntegerEntry(((winner + "_") + tokenRoom(addressRoom, heightRoom)), (getBalanceToken(winner, tokenRoom(addressRoom, heightRoom)) + (a - ((a * 4) / 100)))), IntegerEntry(((addressRoom + "_") + tokenRoom(addressRoom, heightRoom)), (getBalanceToken(addressRoom, tokenRoom(addressRoom, heightRoom)) - mainAddressValue)), IntegerEntry(((address1 + "_") + tokenRoom(addressRoom, heightRoom)), (getBalanceToken(address1, tokenRoom(addressRoom, heightRoom)) - address1Value)), IntegerEntry(((address2 + "_") + tokenRoom(addressRoom, heightRoom)), (getBalanceToken(address2, tokenRoom(addressRoom, heightRoom)) - address2Value)), IntegerEntry(((address3 + "_") + tokenRoom(addressRoom, heightRoom)), (getBalanceToken(address3, tokenRoom(addressRoom, heightRoom)) - address3Value)), IntegerEntry(((address4 + "_") + tokenRoom(addressRoom, heightRoom)), (getBalanceToken(address4, tokenRoom(addressRoom, heightRoom)) - address4Value))]
249245 }
250246 else throw(adminmsg)
251247
252248
253249 @Verifier(tx)
254250 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
255251

github/deemru/w8io/c3f4982 
37.78 ms