tx · 66MeUeLqE6LnuMZUWuvBYcZQLiZbsMHPtkezsUwaAH5c

3N2tusqAtDctK8iSTXS6F9rimmftmSuwLUX:  -0.05000000 Waves

2019.10.29 16:01 [741468] smart account 3N2tusqAtDctK8iSTXS6F9rimmftmSuwLUX > SELF 0.00000000 Waves

{ "type": 13, "id": "66MeUeLqE6LnuMZUWuvBYcZQLiZbsMHPtkezsUwaAH5c", "fee": 5000000, "feeAssetId": null, "timestamp": 1572354098038, "version": 1, "sender": "3N2tusqAtDctK8iSTXS6F9rimmftmSuwLUX", "senderPublicKey": "ACfUG5PwG2GssMuyEwVEhkYAbbbP1geSHR8XoNxLyu6V", "proofs": [ "57TDWz9cnck7qLn2xTqvei3RGJ2BopaHdTeMd7HuVf4oj1bBqCj6FyJcGdVKajxiwWAP2gPuqSqEFaxgSvgjeidH" ], "script": "base64:AAIDAAAAAAAAABIIARIDCgEIEgQKAggCEgMKAQgAAAAiAAAAAAlSU0FQVUJMSUMJAAJbAAAAAQIAAAGPYmFzZTY0Ok1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBZzRkQVI2WGJCREFTOWhyL0VqM2RKdjZGZmM0NjZ4L21PR01XVTNsckFCczNxYThCSG11Skdua2ZicEVmMnZBd1lUT1dQdnZ6Zk0xME9CYmZsb1N5cTNjOU1LdnlUZTFsdUJMR3FXNHZaVVhJeXZTZ3oxbGl5VVZlZklReTNkeUY5amJlVFpiQzBiYmNULzdPM0RFTCswMXo2QStyRENhY1NaMGxHb2xTUTZBbmhMeHpJa1ZwT1FKYnJCbUMreCtadVpQQ01Xekp5bmQ1YWVPbjdqYWovbWtSVnl4ZTZnLzBPaFd6NE5paVpYZXVNUkIrOG1LeTBmV0QvVWxJbFpXSHNBUzJabXJrWEtxakxxMC8wd3I4SUxKa3pualNxZG5JNUliamczdVFyai80QU4raTlyMjhhUTczL1prUHRZNVNidzBBT2lBQkJ1N2dIbXE5YXlWeFpRSURBUUFCAAAAAA9HQU1FU0NPVU5URVJLRVkCAAAACSRHQU1FX05VTQAAAAAEV0JFVAEAAAAgD5uLrFpvaCc5H1Jt+IyA7GJAqs11k4f4jn5gjTii4MkAAAAAC0ZFRVdBVkVTQkVUAAAAAAAAAAAEAAAAAAlGRUVNQ0FGRUUAAAAAAAAAAAIAAAAAB1dBVkVMRVQAAAAAAAX14QAAAAAADlNUQVRFU1VCTUlUVEVEAgAAAAlTVUJNSVRURUQAAAAADVNUQVRFQUNDRVBURUQCAAAACEFDQ0VQVEVEAAAAAA1TVEFURUZJTklTSEVEAgAAAAhGSU5JU0hFRAAAAAANU1RBVEVDQU5DRUxFRAIAAAAIQ0FOQ0VMRUQAAAAAB0NPSU5SRUQCAAAAA1JFRAAAAAAIQ09JTkJMVUUCAAAABEJMVUUAAAAAC0JFVE1JTldBVkVTCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAAQUAAAAHV0FWRUxFVAAAAAAAAAAAAgAAAAAKQkVUTUlOV0JFVAkAAGgAAAACAAAAAAAAAABkBQAAAAdXQVZFTEVUAAAAAAxJZHhHYW1lU3RhdGUA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AAAAAAAAZAAAAAMAAAABaQEAAAAIcGxheUNvaW4AAAABAAAABnBhQ29pbgQAAAAGZ2FtZUlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAACmdhbWVJZFVzZWQJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMFAAAABmdhbWVJZAQAAAAHcGF5bWVudAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAApmZWVBc3NldElkCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAAWkAAAAKZmVlQXNzZXRJZAMDCQEAAAACIT0AAAACCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAD7AAAAAEBAAAABBOr2TMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAABFdCRVQHCQAAAgAAAAECAAAAMVBheW1lbnQgc2hvdWxkIGJlIGluIFdiZXQgb3IgV2F2ZXMuIEdhbWUgYWJvcnRlZC4DBQAAAApmZWVBc3NldElkCQAAAgAAAAECAAAAMVRyYW5zYWN0aW9uJ3MgZmVlIG11c3QgYmUgaW4gV2F2ZXMuIEdhbWUgYWJvcnRlZC4DBQAAAApnYW1lSWRVc2VkCQAAAgAAAAECAAAAMVBhc3NlZCBnYW1lSWQgaGFkIGJlZW4gdXNlZCBiZWZvcmUuIEdhbWUgYWJvcnRlZC4DCQAAAAAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAADVDb2luZmxpcCBjb250cmFjdCBjYW5ub3QgY3JlYXRlIGEgZ2FtZS4gR2FtZSBhYm9ydGVkLgQAAAAKbmV3R2FtZU51bQkBAAAAEEluY3JlbWVudEdhbWVOdW0AAAAABAAAAA9wbGF5ZXJBUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAdwYXlUeXBlCQEAAAALcGF5bWVudFR5cGUAAAABBQAAAAdwYXltZW50BAAAAAZ3aW5BbXQJAQAAABpWYWxpZGF0ZUJldEFuZERlZmluZVdpbkFtdAAAAAMIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAGcGFDb2luBQAAAAdwYXlUeXBlBAAAAAtnYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAACQUAAAAOU1RBVEVTVUJNSVRURUQFAAAABnBhQ29pbgUAAAAPcGxheWVyQVB1YktleTU4BQAAAAdwYXlUeXBlCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAABndpbkFtdAIAAAAAAgAAAAACAAAAAAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD0dBTUVTQ09VTlRFUktFWQUAAAAKbmV3R2FtZU51bQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAAtnYW1lRGF0YVN0cgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABBQAAAANuaWwAAAABaQEAAAATYWNjZXB0Q29pbkNoYWxsZW5nZQAAAAIAAAAGZ2FtZUlkAAAABnJzYVNpZwQAAAAMZ2FtZURhdGFMaXN0CQEAAAATRXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAMSWR4R2FtZVN0YXRlBAAAAAZwYUNvaW4JAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAA5JZHhQbGF5ZXJBQ29pbgQAAAAKcGFQdWJLZXk1OAkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAAEklkeFBsYXllckFQdWJLZXk1OAQAAAAHcGF5VHlwZQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAACklkeFBheVR5cGUEAAAABnBheUFtdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAJSWR4UGF5QW10BAAAAAZ3aW5BbXQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAACUlkeFdpbkFtdAQAAAAHcGF5bWVudAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAApmZWVBc3NldElkCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAAWkAAAAKZmVlQXNzZXRJZAQAAAAKcGJQdWJLZXk1OAkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAACHBheVR5cGVCCQEAAAALcGF5bWVudFR5cGUAAAABBQAAAAdwYXltZW50AwMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAPsAAAAAQEAAAAEE6vZMwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAAEV0JFVAcJAAACAAAAAQIAAAAxUGF5bWVudCBzaG91bGQgYmUgaW4gV2JldCBvciBXYXZlcy4gR2FtZSBhYm9ydGVkLgMFAAAACmZlZUFzc2V0SWQJAAACAAAAAQIAAAAxVHJhbnNhY3Rpb24ncyBmZWUgbXVzdCBiZSBpbiBXYXZlcy4gR2FtZSBhYm9ydGVkLgMJAAAAAAAAAgUAAAAKcGFQdWJLZXk1OAUAAAAKcGJQdWJLZXk1OAkAAAIAAAABAgAAAD9Zb3UgY2FuJ3QgYWNjZXB0IGEgY2hhbGxlbmdlIGNyZWF0ZWQgYnkgeW91cnNlbGYuIEdhbWUgYWJvcnRlZC4DCQEAAAACIT0AAAACBQAAAAdwYXlUeXBlBQAAAAhwYXlUeXBlQgkAAAIAAAABAgAAAGNQYXltZW50IG11c3QgYmUgbWFkZSBpbiB0aGUgc2FtZSBjdXJyZW5jeSB0b2tlbiBhcyB0aGUgYmV0LCBXQkVUL1dCRVQgb3IgV0FWRVMvV0FWRVMuIEdhbWUgYWJvcnRlZC4DCQEAAAACIT0AAAACBQAAAAZwYXlBbXQIBQAAAAdwYXltZW50AAAABmFtb3VudAkAAAIAAAABAgAAAEBQYXlvdXQgbXVzdCBiZSBlcXVhbCB0byB0aGUgY2hhbGxlbmdlciBiZXQgYW1vdW50LiBHYW1lIGFib3J0ZWQuAwkBAAAAAiE9AAAAAgUAAAAJZ2FtZVN0YXRlBQAAAA5TVEFURVNVQk1JVFRFRAkAAAIAAAABAgAAADNJbnZhbGlkIGdhbWUgc3RhdGUgZm9yIHBhc3NlZCBnYW1lSWQuIEdhbWUgYWJvcnRlZC4DCQAAAAAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAADVDb2luZmxpcCBjb250cmFjdCBjYW5ub3QgYWNjZXB0IGEgZ2FtZS4gR2FtZSBhYm9ydGVkLgQAAAAEcmFuZAkBAAAADmdlbmVyYXRlTnVtYmVyAAAAAwUAAAABaQAAAAAAAAAAZAAAAAAAAAAAAAQAAAAJbHVja3lDb2luAwkAAGYAAAACBQAAAARyYW5kAAAAAAAAAAAyBQAAAAdDT0lOUkVEBQAAAAhDT0lOQkxVRQQAAAAGcGJDb2luAwkAAAAAAAACBQAAAAZwYUNvaW4FAAAAB0NPSU5SRUQFAAAACENPSU5CTFVFBQAAAAdDT0lOUkVEBAAAAA5uZXdHYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAACQUAAAANU1RBVEVBQ0NFUFRFRAUAAAAGcGFDb2luBQAAAApwYVB1YktleTU4BQAAAAdwYXlUeXBlBQAAAAZwYXlBbXQFAAAABndpbkFtdAUAAAAGcGJDb2luBQAAAApwYlB1YktleTU4BQAAAAlsdWNreUNvaW4JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAADm5ld0dhbWVEYXRhU3RyBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAFpAQAAABNjYW5jZWxDb2luQ2hhbGxlbmdlAAAAAQAAAAZnYW1lSWQEAAAADGdhbWVEYXRhTGlzdAkBAAAAE0V4dHJhY3RHYW1lRGF0YUxpc3QAAAABBQAAAAZnYW1lSWQEAAAACWdhbWVTdGF0ZQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAADElkeEdhbWVTdGF0ZQQAAAAGcGFDb2luCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAOSWR4UGxheWVyQUNvaW4EAAAACnBhUHViS2V5NTgJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAABJJZHhQbGF5ZXJBUHViS2V5NTgEAAAAB3BheVR5cGUJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAApJZHhQYXlUeXBlBAAAAAZwYXlBbXQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAACUlkeFBheUFtdAQAAAAGd2luQW10CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAlJZHhXaW5BbXQEAAAACHB1YktleTU4CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAKZmVlQXNzZXRJZAkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAFpAAAACmZlZUFzc2V0SWQDBQAAAApmZWVBc3NldElkCQAAAgAAAAECAAAAMVRyYW5zYWN0aW9uJ3MgZmVlIG11c3QgYmUgaW4gV2F2ZXMuIEdhbWUgYWJvcnRlZC4DCQEAAAACIT0AAAACBQAAAAlnYW1lU3RhdGUFAAAADlNUQVRFU1VCTUlUVEVECQAAAgAAAAECAAAAM0ludmFsaWQgZ2FtZSBzdGF0ZSBmb3IgcGFzc2VkIGdhbWVJZC4gR2FtZSBhYm9ydGVkLgMJAQAAAAIhPQAAAAIFAAAACnBhUHViS2V5NTgFAAAACHB1YktleTU4CQAAAgAAAAECAAAAQVlvdSBjYW5ub3QgY2FuY2VsIGEgZ2FtZSBjcmVhdGVkIGJ5IGFub3RoZXIgcGxheWVyLiBHYW1lIGFib3J0ZWQuAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAA1Q29pbmZsaXAgY29udHJhY3QgY2Fubm90IGNhbmNlbCBhIGdhbWUuIEdhbWUgYWJvcnRlZC4EAAAADm5ld0dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAJBQAAAA1TVEFURUNBTkNFTEVEBQAAAAZwYUNvaW4FAAAACnBhUHViS2V5NTgFAAAAB3BheVR5cGUFAAAABnBheUFtdAUAAAAGd2luQW10AgAAAAACAAAAAAIAAAAABAAAAAlyZWZ1bmRBbXQJAABlAAAAAgUAAAAGcGF5QW10CQAAaQAAAAIJAABoAAAAAgUAAAAGcGF5QW10BQAAAAtGRUVXQVZFU0JFVAAAAAAAAAAAZAQAAAAMcmVmdW5kV2FsbGV0CQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQABmwAAAAEFAAAACnBhUHViS2V5NTgEAAAAC3JlZnVuZFRva2VuCQEAAAAJdG9rZW5UeXBlAAAAAQUAAAAHcGF5VHlwZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABmdhbWVJZAUAAAAObmV3R2FtZURhdGFTdHIFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAxyZWZ1bmRXYWxsZXQFAAAACXJlZnVuZEFtdAUAAAALcmVmdW5kVG9rZW4FAAAAA25pbAAAAAAwbSsR", "chainId": 84, "height": 741468, "spentComplexity": 0 } View: original | compacted Prev: yxSkDPE9JhZyg7FCQTYJzAZEb5ebKhFFoU6V3zQGzjr Next: 3EeGYFg14w8rP7G6zzZLd2RBSQJbvUNttjf5eLumEagr Diff:
OldNewDifferences
188188 then throw("Transaction's fee must be in Waves. Game aborted.")
189189 else if (au)
190190 then throw("Passed gameId had been used before. Game aborted.")
191- else {
192- let aw = x()
193- let S = toBase58String(at.callerPublicKey)
194- let T = J(K)
195- let V = aq(K.amount, aj, T)
196- let ax = P(g, aj, S, T, K.amount, V, "", "", "")
197- ScriptResult(WriteSet([DataEntry(b, aw), DataEntry(an, ax)]), TransferSet(nil))
198- }
191+ else if ((at.caller == this))
192+ then throw("Coinflip contract cannot create a game. Game aborted.")
193+ else {
194+ let aw = x()
195+ let S = toBase58String(at.callerPublicKey)
196+ let T = J(K)
197+ let V = aq(K.amount, aj, T)
198+ let ax = P(g, aj, S, T, K.amount, V, "", "", "")
199+ ScriptResult(WriteSet([DataEntry(b, aw), DataEntry(an, ax)]), TransferSet(nil))
200+ }
199201 }
200202
201203
227229 then throw("Payout must be equal to the challenger bet amount. Game aborted.")
228230 else if ((Q != g))
229231 then throw("Invalid game state for passed gameId. Game aborted.")
230- else {
231- let I = B(at, 100, 0)
232- let Y = if ((I > 50))
233- then k
234- else l
235- let aC = if ((aj == k))
236- then l
237- else k
238- let aD = P(h, aj, ak, T, al, V, aC, aA, Y)
239- ScriptResult(WriteSet([DataEntry(an, aD)]), TransferSet(nil))
240- }
232+ else if ((at.caller == this))
233+ then throw("Coinflip contract cannot accept a game. Game aborted.")
234+ else {
235+ let I = B(at, 100, 0)
236+ let Y = if ((I > 50))
237+ then k
238+ else l
239+ let aC = if ((aj == k))
240+ then l
241+ else k
242+ let aD = P(h, aj, ak, T, al, V, aC, aA, Y)
243+ ScriptResult(WriteSet([DataEntry(an, aD)]), TransferSet(nil))
244+ }
241245 }
242246
243247
259263 then throw("Invalid game state for passed gameId. Game aborted.")
260264 else if ((ak != aE))
261265 then throw("You cannot cancel a game created by another player. Game aborted.")
262- else {
263- let aD = P(j, aj, ak, T, al, V, "", "", "")
264- let aF = (al - ((al * d) / 100))
265- let aG = addressFromPublicKey(toBytes(ak))
266- let aH = L(T)
267- ScriptResult(WriteSet([DataEntry(an, aD)]), TransferSet([ScriptTransfer(aG, aF, aH)]))
268- }
266+ else if ((at.caller == this))
267+ then throw("Coinflip contract cannot cancel a game. Game aborted.")
268+ else {
269+ let aD = P(j, aj, ak, T, al, V, "", "", "")
270+ let aF = (al - ((al * d) / 100))
271+ let aG = addressFromPublicKey(toBytes(ak))
272+ let aH = L(T)
273+ ScriptResult(WriteSet([DataEntry(an, aD)]), TransferSet([ScriptTransfer(aG, aF, aH)]))
274+ }
269275 }
270276
271277
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg4dAR6XbBDAS9hr/Ej3dJv6Ffc466x/mOGMWU3lrABs3qa8BHmuJGnkfbpEf2vAwYTOWPvvzfM10OBbfloSyq3c9MKvyTe1luBLGqW4vZUXIyvSgz1liyUVefIQy3dyF9jbeTZbC0bbcT/7O3DEL+01z6A+rDCacSZ0lGolSQ6AnhLxzIkVpOQJbrBmC+x+ZuZPCMWzJynd5aeOn7jaj/mkRVyxe6g/0OhWz4NiiZXeuMRB+8mKy0fWD/UlIlZWHsAS2ZmrkXKqjLq0/0wr8ILJkznjSqdnI5Ibjg3uQrj/4AN+i9r28aQ73/ZkPtY5Sbw0AOiABBu7gHmq9ayVxZQIDAQAB")
55
66 let b = "$GAME_NUM"
77
88 let c = base58'23vgV9p9pD83A7CFbsDEc4zjanep7UeFo4ZRS6oGorhv'
99
1010 let d = 4
1111
1212 let e = 2
1313
1414 let f = 100000000
1515
1616 let g = "SUBMITTED"
1717
1818 let h = "ACCEPTED"
1919
2020 let i = "FINISHED"
2121
2222 let j = "CANCELED"
2323
2424 let k = "RED"
2525
2626 let l = "BLUE"
2727
2828 let m = ((1 * f) / 2)
2929
3030 let n = (100 * f)
3131
3232 let o = 0
3333
3434 let p = 1
3535
3636 let q = 2
3737
3838 let r = 3
3939
4040 let s = 4
4141
4242 let t = 5
4343
4444 let u = 6
4545
4646 let v = 7
4747
4848 let w = 8
4949
5050 func x () = {
5151 let y = {
5252 let z = getInteger(this, b)
5353 if ($isInstanceOf(z, "Int"))
5454 then {
5555 let A = z
5656 A
5757 }
5858 else 0
5959 }
6060 (y + 1)
6161 }
6262
6363
6464 func B (C,D,E) = {
6565 let F = {
6666 let z = getBinary(this, "lastPlay")
6767 if ($isInstanceOf(z, "ByteVector"))
6868 then {
6969 let G = z
7070 G
7171 }
7272 else if ($isInstanceOf(z, "Unit"))
7373 then {
7474 let H = z
7575 base58'2ee4oFDYriWJ9EMeR'
7676 }
7777 else throw()
7878 }
7979 let I = (((((F + C.transactionId) + C.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
8080 (((toInt(sha256(I)) % 1000) % ((D - E) + 1)) + 1)
8181 }
8282
8383
8484 func J (K) = if ((K.assetId == c))
8585 then "WBET"
8686 else "WAVES"
8787
8888
8989 func L (M) = if ((M == "WBET"))
9090 then c
9191 else unit
9292
9393
9494 func N (O) = {
9595 let G = size(O)
9696 if ((G == 0))
9797 then throw("Parameter size must be greater then 0")
9898 else if ((G > 99))
9999 then throw("Parameter size must be less then 100")
100100 else if ((10 > G))
101101 then (("0" + toString(G)) + O)
102102 else (toString(G) + O)
103103 }
104104
105105
106106 func P (Q,R,S,T,U,V,W,X,Y) = {
107107 let Z = ((((((((((N(Q) + "_") + N(R)) + "_") + N(S)) + "_") + N(T)) + "_") + N(toString(U))) + "_") + N(toString(V)))
108108 if (if (if ((W == ""))
109109 then true
110110 else (X == ""))
111111 then true
112112 else (Y == ""))
113113 then Z
114114 else ((((((Z + "_") + N(W)) + "_") + N(X)) + "_") + N(Y))
115115 }
116116
117117
118118 func aa (ab) = if ((size(ab) > 0))
119119 then drop(ab, 1)
120120 else ab
121121
122122
123123 func ac (ab) = {
124124 let G = size(ab)
125125 if ((G > 0))
126126 then {
127127 let ad = parseIntValue(take(ab, 2))
128128 let ae = take(drop(ab, 2), ad)
129129 let af = drop(ab, (ad + 2))
130130 let ag = aa(af)
131131 [ae, ag]
132132 }
133133 else throw("Empty string was passed into parseNextAttribute func")
134134 }
135135
136136
137137 func ah (ai) = {
138138 let Q = ac(ai)
139139 let aj = ac(Q[1])
140140 let ak = ac(aj[1])
141141 let T = ac(ak[1])
142142 let al = ac(T[1])
143143 let V = ac(al[1])
144144 [Q[0], aj[0], ak[0], T[0], al[0], V[0]]
145145 }
146146
147147
148148 func am (an) = {
149149 let ao = {
150150 let z = getString(this, an)
151151 if ($isInstanceOf(z, "String"))
152152 then {
153153 let ap = z
154154 ap
155155 }
156156 else throw(("Couldn't find game by " + an))
157157 }
158158 ah(ao)
159159 }
160160
161161
162162 func aq (ar,as,J) = if (if ((as != k))
163163 then (as != l)
164164 else false)
165165 then throw("Invalid play, change your bet to RED or BLUE coin. Game aborted.")
166166 else if (if ((J == "WBET"))
167167 then (n > ar)
168168 else false)
169169 then throw(("The minimum bet on Wbet is " + toString((n / f))))
170170 else if (if ((J == "WAVES"))
171171 then (m > ar)
172172 else false)
173173 then throw(("The minimum bet on Waves is " + toString((m / f))))
174174 else (((ar * 2) * (100 - (d + e))) / 100)
175175
176176
177177 @Callable(at)
178178 func playCoin (aj) = {
179179 let an = toBase58String(at.transactionId)
180180 let au = isDefined(getString(this, an))
181181 let K = extract(at.payment)
182182 let av = isDefined(at.feeAssetId)
183183 if (if ((K.assetId != assetInfo(base58'WAVES')))
184184 then (K.assetId != c)
185185 else false)
186186 then throw("Payment should be in Wbet or Waves. Game aborted.")
187187 else if (av)
188188 then throw("Transaction's fee must be in Waves. Game aborted.")
189189 else if (au)
190190 then throw("Passed gameId had been used before. Game aborted.")
191- else {
192- let aw = x()
193- let S = toBase58String(at.callerPublicKey)
194- let T = J(K)
195- let V = aq(K.amount, aj, T)
196- let ax = P(g, aj, S, T, K.amount, V, "", "", "")
197- ScriptResult(WriteSet([DataEntry(b, aw), DataEntry(an, ax)]), TransferSet(nil))
198- }
191+ else if ((at.caller == this))
192+ then throw("Coinflip contract cannot create a game. Game aborted.")
193+ else {
194+ let aw = x()
195+ let S = toBase58String(at.callerPublicKey)
196+ let T = J(K)
197+ let V = aq(K.amount, aj, T)
198+ let ax = P(g, aj, S, T, K.amount, V, "", "", "")
199+ ScriptResult(WriteSet([DataEntry(b, aw), DataEntry(an, ax)]), TransferSet(nil))
200+ }
199201 }
200202
201203
202204
203205 @Callable(at)
204206 func acceptCoinChallenge (an,ay) = {
205207 let az = am(an)
206208 let Q = az[o]
207209 let aj = az[p]
208210 let ak = az[q]
209211 let T = az[r]
210212 let al = parseIntValue(az[s])
211213 let V = parseIntValue(az[t])
212214 let K = extract(at.payment)
213215 let av = isDefined(at.feeAssetId)
214216 let aA = toBase58String(at.callerPublicKey)
215217 let aB = J(K)
216218 if (if ((K.assetId != assetInfo(base58'WAVES')))
217219 then (K.assetId != c)
218220 else false)
219221 then throw("Payment should be in Wbet or Waves. Game aborted.")
220222 else if (av)
221223 then throw("Transaction's fee must be in Waves. Game aborted.")
222224 else if ((ak == aA))
223225 then throw("You can't accept a challenge created by yourself. Game aborted.")
224226 else if ((T != aB))
225227 then throw("Payment must be made in the same currency token as the bet, WBET/WBET or WAVES/WAVES. Game aborted.")
226228 else if ((al != K.amount))
227229 then throw("Payout must be equal to the challenger bet amount. Game aborted.")
228230 else if ((Q != g))
229231 then throw("Invalid game state for passed gameId. Game aborted.")
230- else {
231- let I = B(at, 100, 0)
232- let Y = if ((I > 50))
233- then k
234- else l
235- let aC = if ((aj == k))
236- then l
237- else k
238- let aD = P(h, aj, ak, T, al, V, aC, aA, Y)
239- ScriptResult(WriteSet([DataEntry(an, aD)]), TransferSet(nil))
240- }
232+ else if ((at.caller == this))
233+ then throw("Coinflip contract cannot accept a game. Game aborted.")
234+ else {
235+ let I = B(at, 100, 0)
236+ let Y = if ((I > 50))
237+ then k
238+ else l
239+ let aC = if ((aj == k))
240+ then l
241+ else k
242+ let aD = P(h, aj, ak, T, al, V, aC, aA, Y)
243+ ScriptResult(WriteSet([DataEntry(an, aD)]), TransferSet(nil))
244+ }
241245 }
242246
243247
244248
245249 @Callable(at)
246250 func cancelCoinChallenge (an) = {
247251 let az = am(an)
248252 let Q = az[o]
249253 let aj = az[p]
250254 let ak = az[q]
251255 let T = az[r]
252256 let al = parseIntValue(az[s])
253257 let V = parseIntValue(az[t])
254258 let aE = toBase58String(at.callerPublicKey)
255259 let av = isDefined(at.feeAssetId)
256260 if (av)
257261 then throw("Transaction's fee must be in Waves. Game aborted.")
258262 else if ((Q != g))
259263 then throw("Invalid game state for passed gameId. Game aborted.")
260264 else if ((ak != aE))
261265 then throw("You cannot cancel a game created by another player. Game aborted.")
262- else {
263- let aD = P(j, aj, ak, T, al, V, "", "", "")
264- let aF = (al - ((al * d) / 100))
265- let aG = addressFromPublicKey(toBytes(ak))
266- let aH = L(T)
267- ScriptResult(WriteSet([DataEntry(an, aD)]), TransferSet([ScriptTransfer(aG, aF, aH)]))
268- }
266+ else if ((at.caller == this))
267+ then throw("Coinflip contract cannot cancel a game. Game aborted.")
268+ else {
269+ let aD = P(j, aj, ak, T, al, V, "", "", "")
270+ let aF = (al - ((al * d) / 100))
271+ let aG = addressFromPublicKey(toBytes(ak))
272+ let aH = L(T)
273+ ScriptResult(WriteSet([DataEntry(an, aD)]), TransferSet([ScriptTransfer(aG, aF, aH)]))
274+ }
269275 }
270276
271277

github/deemru/w8io/873ac7e 
33.23 ms