tx · EWeMevSEZ2G82tthpPPmBKEKtyubWNKDcHJNjWxhwhp9

3P5bczozZttGuLUPJfz25bE8HtzXHtWnzYv:  -0.01500000 Waves

2020.06.17 15:48 [2110916] smart account 3P5bczozZttGuLUPJfz25bE8HtzXHtWnzYv > SELF 0.00000000 Waves

{ "type": 13, "id": "EWeMevSEZ2G82tthpPPmBKEKtyubWNKDcHJNjWxhwhp9", "fee": 1500000, "feeAssetId": null, "timestamp": 1592398133712, "version": 1, "sender": "3P5bczozZttGuLUPJfz25bE8HtzXHtWnzYv", "senderPublicKey": "CQxNnWynVxPVdzu1ghpBPceE5nVQzsngc4uYy6PgKD6a", "proofs": [ "5RzDCdW57QYqwQgr2GFSuuWzRBqi6a4y8dXxWKCkfXdoUJSvmTn1uYy8ZTE6gdtBd25Lvn4ZGgDQCyYfNVZY3j2i" ], "script": "base64:AAIDAAAAAAAAAA0IARIDCgEIEgQKAggCAAAAJwAAAAAJUlNBUFVCTElDCQACWwAAAAECAAABj2Jhc2U2NDpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQWxlbXI5NUoxalpVczdjSm1ybW1sTjR6bzdZVnNCSnpJZUpkazhMREZHaFVLU0k2eWZzMjBaeUplMjErNkdKd05uS1VVMVV5b2MxN3dTV01La3JaME1NdllFK1o1QWlpanZCSzRzU0ozSWdHamRVOC9OaEk4Q0JEdTBGK3hSTTlxM1RCM0xMYkR5NXNCZHVkWWZIZnNVT2MrTVR2QUQ2OW4yN2RiMlJoOCt5WlFNdHVia3VUUU5wODlzcGhIUWFMR3lRRmFObEsvTmEzbEZ4Nm9tcXphYTFnam9wbFVyNnJ2WUtnZkFJQ1VCM3pWbUpTaGlFaTd3N1IwaFdsTlJEM3FjWmpDVU9OU3BGbzRXYnprbkdPYXp3ODRCK0lNSUZuSXBYV3pRTDhSWDB2TmNmc0J2TERmTTZrMlphY3F3eU1LYUxMcWlnZEJpR2RKN1crMGxPU3RPUUlEQVFBQgAAAAAGU0VSVkVSCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAECAAAAIzNQTVQ5d3VuN0JCN0pBQlN1aFRKcEZnSm9lZ1JmWXcyZTZkAAAAABNSQU5ET1JBQ0xFVElNRUZSQU1FAAAAAAAAABwgAAAAAARCRVQxAAAAAAAAAAABAAAAAARCRVQyAAAAAAAAAAACAAAAAARCRVQ0AAAAAAAAAAAEAAAAAARCRVQ4AAAAAAAAAAAIAAAAAAVCRVQxNAAAAAAAAAAADgAAAAAEQkVUUwkABEwAAAACBQAAAARCRVQxCQAETAAAAAIFAAAABEJFVDIJAARMAAAAAgUAAAAEQkVUNAkABEwAAAACBQAAAARCRVQ4CQAETAAAAAIFAAAABUJFVDE0BQAAAANuaWwAAAAABldBVkVTRAAAAAAABfXhAAAAAAAFVVNETkQAAAAAAAAPQkAAAAAACERFQ0lNQUxTCQAETAAAAAIFAAAABldBVkVTRAkABEwAAAACBQAAAAVVU0RORAUAAAADbmlsAAAAAAZBU1NFVFMJAARMAAAAAgUAAAAEdW5pdAkABEwAAAACCQACWQAAAAECAAAALERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwBQAAAANuaWwAAAAACFJBVEVNVUxUAAAAAAAAACcQAAAAAARSQVRFAAAAAAAAAEo4AAAAAAxJZHhHYW1lU3RhdGUAAAAAAAAAAAAAAAAAD0lkeFBsYXllckNob2ljZQAAAAAAAAAAAQAAAAARSWR4UGxheWVyUHViS2V5NTgAAAAAAAAAAAIAAAAAEElkeFN0YXJ0ZWRIZWlnaHQAAAAAAAAAAAMAAAAADElkeFdpbkFtb3VudAAAAAAAAAAABAAAAAAKSWR4QXNzZXRJZAAAAAAAAAAABQAAAAAOUkVTRVJWQVRJT05LRVkJAARMAAAAAgIAAAAWJFJFU0VSVkVEX0FNT1VOVF9XQVZFUwkABEwAAAACAgAAABUkUkVTRVJWRURfQU1PVU5UX1VTRE4FAAAAA25pbAAAAAAPR0FNRVNDT1VOVEVSS0VZAgAAAAkkR0FNRV9OVU0AAAAADlNUQVRFU1VCTUlUVEVEAgAAAAlTVUJNSVRURUQAAAAACFNUQVRFV09OAgAAAANXT04AAAAACVNUQVRFTE9TVAIAAAAETE9TVAEAAAAIZ2V0SW50T3IAAAACAAAAA2tleQAAAAdkZWZhdWx0AwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAANrZXkFAAAAB2RlZmF1bHQBAAAABnNldEludAAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAMaW5jcmVtZW50SW50AAAAAQAAAANrZXkJAQAAAAZzZXRJbnQAAAACBQAAAANrZXkJAABkAAAAAgkBAAAACGdldEludE9yAAAAAgUAAAADa2V5AP//////////AAAAAAAAAAABAQAAAAljaGFuZ2VJbnQAAAACAAAAA2tleQAAAAJieQkBAAAABnNldEludAAAAAIFAAAAA2tleQkAAGQAAAACCQEAAAAIZ2V0SW50T3IAAAACBQAAAANrZXkAAAAAAAAAAAAFAAAAAmJ5AQAAABVpbmNyZWFzZVJlc2VydmVBbW91bnQAAAACAAAACXdpbkFtb3VudAAAAAdhc3NldElkBAAAABFuZXdSZXNlcnZlZEFtb3VudAkAAGQAAAACCQEAAAAIZ2V0SW50T3IAAAACCQABkQAAAAIFAAAADlJFU0VSVkFUSU9OS0VZBQAAAAdhc3NldElkAAAAAAAAAAAABQAAAAl3aW5BbW91bnQDCQAAZgAAAAIFAAAAEW5ld1Jlc2VydmVkQW1vdW50CQAD6wAAAAIFAAAABHRoaXMJAAGRAAAAAgUAAAAGQVNTRVRTBQAAAAdhc3NldElkCQAAAgAAAAECAAAAVEluc3VmZmljaWVudCBmdW5kcyBvbiBEaWNlIFJvbGxlciBhY2NvdW50LiBUcmFuc2FjdGlvbiB3YXMgcmVqZWN0ZWQgZm9yIHlvdXIgc2FmZXR5LgUAAAARbmV3UmVzZXJ2ZWRBbW91bnQBAAAAFmRlY3JlYXNlUmVzZXJ2ZWRBbW91bnQAAAADAAAABmdhbWVJZAAAAAdhc3NldElkAAAACXdpbkFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAkAAGUAAAACCQEAAAAIZ2V0SW50T3IAAAACCQABkQAAAAIFAAAADlJFU0VSVkFUSU9OS0VZBQAAAAdhc3NldElkAAAAAAAAAAAABQAAAAl3aW5BbW91bnQJAAACAAAAAQIAAABCSW52YWxpZCBEaWNlIFJvbGxlciBhY2NvdW50IHN0YXRlIC0gcmVzZXJ2ZWQgYW1vdW50IGlzIGxlc3MgdGhhbiAwCQEAAAAJY2hhbmdlSW50AAAAAgkAAZEAAAACBQAAAA5SRVNFUlZBVElPTktFWQUAAAAHYXNzZXRJZAkBAAAAAS0AAAABBQAAAAl3aW5BbW91bnQBAAAAFXZhbGlkYXRlQW5kR2V0QXNzZXRJZAAAAAEAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAAHYXNzZXRJZAkAAZEAAAACBQAAAAZBU1NFVFMAAAAAAAAAAAAAAAAAAAAAAAADCQAAAAAAAAIFAAAAB2Fzc2V0SWQJAAGRAAAAAgUAAAAGQVNTRVRTAAAAAAAAAAABAAAAAAAAAAABCQAAAgAAAAECAAAAFUludmFsaWQgcGF5bWVudCBhc3NldAEAAAAadmFsaWRhdGVCZXRBbmRH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SWQJAARMAAAAAgkBAAAADGluY3JlbWVudEludAAAAAEFAAAAD0dBTUVTQ09VTlRFUktFWQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAAtnYW1lRGF0YVN0cgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABlNFUlZFUggFAAAAAWkAAAADZmVlCAUAAAABaQAAAApmZWVBc3NldElkBQAAAANuaWwAAAABaQEAAAAId2l0aGRyYXcAAAACAAAABmdhbWVJZAAAAAdyc2FTaWduBAAAAAhnYW1lRGF0YQkBAAAAD2V4dHJhY3RHYW1lRGF0YQAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAACGdhbWVEYXRhBQAAAAxJZHhHYW1lU3RhdGUEAAAADHBsYXllckNob2ljZQkAAZEAAAACBQAAAAhnYW1lRGF0YQUAAAAPSWR4UGxheWVyQ2hvaWNlBAAAAA1zdGFydGVkSGVpZ2h0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIZ2FtZURhdGEFAAAAEElkeFN0YXJ0ZWRIZWlnaHQEAAAACXdpbkFtb3VudAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGdhbWVEYXRhBQAAAAxJZHhXaW5BbW91bnQEAAAAB2Fzc2V0SWQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhnYW1lRGF0YQUAAAAKSWR4QXNzZXRJZAQAAAAOcGxheWVyUHViS2V5NTgJAAGRAAAAAgUAAAAIZ2FtZURhdGEFAAAAEUlkeFBsYXllclB1YktleTU4BAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADnBsYXllclB1YktleTU4BAAAAAx3aW5CeVRpbWVvdXQJAABmAAAAAgkAAGUAAAACBQAAAAZoZWlnaHQFAAAADXN0YXJ0ZWRIZWlnaHQFAAAAE1JBTkRPUkFDTEVUSU1FRlJBTUUEAAAAEWRlY3JlYXNlZFJlc2VydmVzCQEAAAAWZGVjcmVhc2VSZXNlcnZlZEFtb3VudAAAAAMFAAAABmdhbWVJZAUAAAAHYXNzZXRJZAUAAAAJd2luQW1vdW50AwkBAAAAAiE9AAAAAgUAAAAJZ2FtZVN0YXRlBQAAAA5TVEFURVNVQk1JVFRFRAkAAAIAAAABAgAAACRJbnZhbGlkIGdhbWUgc3RhdGUgZm9yIHBhc3NlZCBnYW1lSWQDBQAAAAx3aW5CeVRpbWVvdXQEAAAAB3JhbmRTdHIJAAEvAAAAAgUAAAAMcGxheWVyQ2hvaWNlAAAAAAAAAAABBAAAAA5uZXdHYW1lRGF0YVN0cgkBAAAADmZvcm1hdEdhbWVEYXRhAAAABwUAAAAIU1RBVEVXT04FAAAADHBsYXllckNob2ljZQUAAAAOcGxheWVyUHViS2V5NTgFAAAADXN0YXJ0ZWRIZWlnaHQFAAAACXdpbkFtb3VudAUAAAAHYXNzZXRJZAUAAAAHcmFuZFN0cgkBAAAADHdpblNjcmlwdFNldAAAAAcFAAAABmdhbWVJZAUAAAANcGxheWVyQWRkcmVzcwUAAAAJd2luQW1vdW50BQAAAAdhc3NldElkBQAAAA5uZXdHYW1lRGF0YVN0cgUAAAAMd2luQnlUaW1lb3V0BQAAABFkZWNyZWFzZWRSZXNlcnZlcwQAAAAHcmFuZFN0cgkBAAAAD2dlbmVyYXRlUmFuZEludAAAAAIFAAAABmdhbWVJZAUAAAAHcnNhU2lnbgMJAQAAAAtpc1BsYXllcldpbgAAAAIFAAAADHBsYXllckNob2ljZQUAAAAHcmFuZFN0cgQAAAAObmV3R2FtZURhdGFTdHIJAQAAAA5mb3JtYXRHYW1lRGF0YQAAAAcFAAAACFNUQVRFV09OBQAAAAxwbGF5ZXJDaG9pY2UFAAAADnBsYXllclB1YktleTU4BQAAAA1zdGFydGVkSGVpZ2h0BQAAAAl3aW5BbW91bnQFAAAAB2Fzc2V0SWQFAAAAB3JhbmRTdHIJAQAAAAx3aW5TY3JpcHRTZXQAAAAHBQAAAAZnYW1lSWQFAAAADXBsYXllckFkZHJlc3MFAAAACXdpbkFtb3VudAUAAAAHYXNzZXRJZAUAAAAObmV3R2FtZURhdGFTdHIFAAAADHdpbkJ5VGltZW91dAUAAAARZGVjcmVhc2VkUmVzZXJ2ZXMEAAAADm5ld0dhbWVEYXRhU3RyCQEAAAAOZm9ybWF0R2FtZURhdGEAAAAHBQAAAAlTVEFURUxPU1QFAAAADHBsYXllckNob2ljZQUAAAAOcGxheWVyUHViS2V5NTgFAAAADXN0YXJ0ZWRIZWlnaHQFAAAACXdpbkFtb3VudAUAAAAHYXNzZXRJZAUAAAAHcmFuZFN0cgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAA5uZXdHYW1lRGF0YVN0cgkABEwAAAACBQAAABFkZWNyZWFzZWRSZXNlcnZlcwUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAADdHR4BQAAAAckbWF0Y2gwBAAAAAdhc3NldElkCQEAAAAVdmFsaWRhdGVBbmRHZXRBc3NldElkAAAAAQgFAAAAA3R0eAAAAAdhc3NldElkCQAAZwAAAAIJAABlAAAAAgkAA+sAAAACBQAAAAR0aGlzCAUAAAADdHR4AAAAB2Fzc2V0SWQIBQAAAAN0dHgAAAAGYW1vdW50CQEAAAAIZ2V0SW50T3IAAAACCQABkQAAAAIFAAAADlJFU0VSVkFUSU9OS0VZBQAAAAdhc3NldElkAAAAAAAAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAADc3R4BQAAAAckbWF0Y2gwAwkAAAAAAAACCQEAAAAIZ2V0SW50T3IAAAACCQABkQAAAAIFAAAADlJFU0VSVkFUSU9OS0VZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAIJAQAAAAhnZXRJbnRPcgAAAAIJAAGRAAAAAgUAAAAOUkVTRVJWQVRJT05LRVkAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAHBwdT3wFK", "chainId": 87, "height": 2110916, "spentComplexity": 0 } View: original | compacted Prev: ANeFp91PdUNosbtwv4V6iWo5tNfJV3EokgDS1erdHVSM Next: none Diff:
OldNewDifferences
2727
2828 let m = [unit, fromBase58String("DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p")]
2929
30-let n = [((5 * j) / 1000), (((5 * k) / 1000) * 10)]
30+let n = 10000
3131
32-func o (p) = n[p]
32+let o = 19000
33+
34+let p = 0
35+
36+let q = 1
37+
38+let r = 2
39+
40+let s = 3
41+
42+let t = 4
43+
44+let u = 5
45+
46+let v = ["$RESERVED_AMOUNT_WAVES", "$RESERVED_AMOUNT_USDN"]
47+
48+let w = "$GAME_NUM"
49+
50+let x = "SUBMITTED"
51+
52+let y = "WON"
53+
54+let z = "LOST"
55+
56+func A (B,C) = if (isDefined(getInteger(this, B)))
57+ then getIntegerValue(this, B)
58+ else C
3359
3460
35-let q = 10000
36-
37-let r = 19000
38-
39-let s = 0
40-
41-let t = 1
42-
43-let u = 2
44-
45-let v = 3
46-
47-let w = 4
48-
49-let x = 5
50-
51-let y = ["$RESERVED_AMOUNT_WAVES", "$RESERVED_AMOUNT_USDN"]
52-
53-let z = "$GAME_NUM"
54-
55-let A = "SUBMITTED"
56-
57-let B = "WON"
58-
59-let C = "LOST"
60-
61-func D (E,F) = if (isDefined(getInteger(this, E)))
62- then getIntegerValue(this, E)
63- else F
61+func D (B,E) = DataEntry(B, E)
6462
6563
66-func G (E,H) = DataEntry(E, H)
64+func F (B) = D(B, (A(B, -1) + 1))
6765
6866
69-func I (E) = G(E, (D(E, -1) + 1))
67+func G (B,H) = D(B, (A(B, 0) + H))
7068
7169
72-func J (E,K) = G(E, (D(E, 0) + K))
73-
74-
75-func L (M,p) = {
76- let N = (D(y[p], 0) + M)
77- if ((N > assetBalance(this, m[p])))
70+func I (J,K) = {
71+ let L = (A(v[K], 0) + J)
72+ if ((L > assetBalance(this, m[K])))
7873 then throw("Insufficient funds on Dice Roller account. Transaction was rejected for your safety.")
79- else N
74+ else L
8075 }
8176
8277
83-func O (P,p,M) = if ((0 > (D(y[p], 0) - M)))
78+func M (N,K,J) = if ((0 > (A(v[K], 0) - J)))
8479 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
85- else J(y[p], -(M))
80+ else G(v[K], -(J))
8681
8782
88-func Q (p) = if ((p == m[0]))
83+func O (K) = if ((K == m[0]))
8984 then 0
90- else if ((p == m[1]))
85+ else if ((K == m[1]))
9186 then 1
9287 else throw("Invalid payment asset")
9388
9489
95-func R (S,p,T) = {
96- let U = size(T)
97- let V = o(p)
98- func W (X,Y) = if (X)
90+func P (Q,K,R) = {
91+ let S = size(R)
92+ func T (U,V) = if (U)
9993 then true
100- else (S == ((Y * l[p]) + V))
94+ else (Q == (V * l[K]))
10195
10296 if (!({
103- let Z = i
104- let aa = size(Z)
105- let ab = false
106- if ((aa == 0))
107- then ab
97+ let W = i
98+ let X = size(W)
99+ let Y = false
100+ if ((X == 0))
101+ then Y
108102 else {
109- let ac = W(ab, Z[0])
110- if ((aa == 1))
111- then ac
103+ let Z = T(Y, W[0])
104+ if ((X == 1))
105+ then Z
112106 else {
113- let ad = W(ac, Z[1])
114- if ((aa == 2))
115- then ad
107+ let aa = T(Z, W[1])
108+ if ((X == 2))
109+ then aa
116110 else {
117- let ae = W(ad, Z[2])
118- if ((aa == 3))
119- then ae
111+ let ab = T(aa, W[2])
112+ if ((X == 3))
113+ then ab
120114 else {
121- let af = W(ae, Z[3])
122- if ((aa == 4))
123- then af
115+ let ac = T(ab, W[3])
116+ if ((X == 4))
117+ then ac
124118 else {
125- let ag = W(af, Z[4])
126- if ((aa == 5))
127- then ag
119+ let ad = T(ac, W[4])
120+ if ((X == 5))
121+ then ad
128122 else {
129- let ah = W(ag, Z[5])
123+ let ae = T(ad, W[5])
130124 throw("List size exceed 5")
131125 }
132126 }
136130 }
137131 }))
138132 then throw("Bet amount is not valid")
139- else if ((parseInt(T) == unit))
133+ else if ((parseInt(R) == unit))
140134 then throw("Invalid player's choice")
141- else if ((U != 1))
135+ else if ((S != 1))
142136 then throw("Invalid length of player's choice")
137+ else ((Q * o) / n)
138+ }
139+
140+
141+func af (N,ag) = {
142+ let ah = rsaVerify(SHA256, toBytes(N), ag, a)
143+ if (!(ah))
144+ then throw("Invalid RSA signature")
145+ else {
146+ let ai = (toInt(sha256(ag)) % 2)
147+ let aj = if ((0 > ai))
148+ then (-1 * ai)
149+ else ai
150+ toString(aj)
151+ }
152+ }
153+
154+
155+func ak (R,al) = {
156+ let am = size(R)
157+ if ((am == 1))
158+ then (R == al)
159+ else false
160+ }
161+
162+
163+func an (ao,R,ap,aq,J,K,ar) = (((((((((((ao + "_") + R) + "_") + ap) + "_") + toString(aq)) + "_") + toString(J)) + "_") + toString(K)) + (if ((ar == ""))
164+ then ""
165+ else ("_" + ar)))
166+
167+
168+func as (N) = split({
169+ let at = getString(this, N)
170+ if ($isInstanceOf(at, "String"))
171+ then {
172+ let au = at
173+ au
174+ }
175+ else throw((("Game: " + N) + " not found."))
176+ }, "_")
177+
178+
179+func av (N,aw,J,K,ax,ay,az) = {
180+ let aA = [az]
181+ let aB = [ScriptTransfer(aw, J, m[K])]
182+ if (ay)
183+ then {
184+ let aC = (ax + "_TIMEOUT")
185+ let aD = DataEntry(N, aC)
186+ ScriptResult(WriteSet(aD :: aA), TransferSet(aB))
187+ }
188+ else {
189+ let aD = DataEntry(N, ax)
190+ ScriptResult(WriteSet(aD :: aA), TransferSet(aB))
191+ }
192+ }
193+
194+
195+@Callable(aE)
196+func bet (R) = {
197+ let N = toBase58String(aE.transactionId)
198+ if ((aE.payment == unit))
199+ then throw("No payment")
200+ else if (isDefined(getString(this, N)))
201+ then throw((("Bet for: " + N) + " was already made."))
202+ else if (if ((aE.feeAssetId != m[0]))
203+ then (aE.feeAssetId != m[1])
204+ else false)
205+ then throw("Invalid fee asset")
143206 else {
144- let ai = (S - V)
145- ((ai * r) / q)
207+ let aF = extract(aE.payment)
208+ if ((aE.feeAssetId != aF.assetId))
209+ then throw("Fee assetId and payment assetId should match")
210+ else {
211+ let K = O(aF.assetId)
212+ let aG = aE.fee
213+ let J = P((aF.amount - aE.fee), K, R)
214+ let aH = isDefined(getString(this, N))
215+ let ap = toBase58String(aE.callerPublicKey)
216+ let aI = an(x, R, ap, height, J, K, "")
217+ ScriptResult(WriteSet([DataEntry(v[K], I(J, K)), F(w), DataEntry(N, aI)]), TransferSet([ScriptTransfer(b, aE.fee, aE.feeAssetId)]))
218+ }
146219 }
147220 }
148221
149222
150-func aj (P,ak) = {
151- let al = rsaVerify(SHA256, toBytes(P), ak, a)
152- if (!(al))
153- then throw("Invalid RSA signature")
154- else {
155- let am = (toInt(sha256(ak)) % 2)
156- let an = if ((0 > am))
157- then (-1 * am)
158- else am
159- toString(an)
160- }
161- }
162223
163-
164-func ao (T,ap) = {
165- let aq = size(T)
166- if ((aq == 1))
167- then (T == ap)
168- else false
169- }
170-
171-
172-func ar (as,T,at,au,M,p,av) = (((((((((((as + "_") + T) + "_") + at) + "_") + toString(au)) + "_") + toString(M)) + "_") + toString(p)) + (if ((av == ""))
173- then ""
174- else ("_" + av)))
175-
176-
177-func aw (P) = split({
178- let ax = getString(this, P)
179- if ($isInstanceOf(ax, "String"))
180- then {
181- let ay = ax
182- ay
183- }
184- else throw((("Game: " + P) + " not found."))
185- }, "_")
186-
187-
188-func az (P,aA,M,p,aB,aC,aD) = {
189- let aE = [aD]
190- let aF = [ScriptTransfer(aA, M, m[p])]
191- if (aC)
192- then {
193- let aG = (aB + "_TIMEOUT")
194- let aH = DataEntry(P, aG)
195- ScriptResult(WriteSet(aH :: aE), TransferSet(aF))
196- }
197- else {
198- let aH = DataEntry(P, aB)
199- ScriptResult(WriteSet(aH :: aE), TransferSet(aF))
200- }
201- }
202-
203-
204-@Callable(aI)
205-func bet (T) = {
206- let P = toBase58String(aI.transactionId)
207- if ((aI.payment == unit))
208- then throw("No payment")
209- else if (isDefined(getString(this, P)))
210- then throw((("Bet for: " + P) + " was already made."))
211- else {
212- let aJ = extract(aI.payment)
213- let p = Q(aJ.assetId)
214- let V = o(p)
215- let M = R(aJ.amount, p, T)
216- let aK = isDefined(getString(this, P))
217- let at = toBase58String(aI.callerPublicKey)
218- let aL = ar(A, T, at, height, M, p, "")
219- ScriptResult(WriteSet([DataEntry(y[p], L(M, p)), I(z), DataEntry(P, aL)]), TransferSet([ScriptTransfer(b, V, unit)]))
220- }
221- }
222-
223-
224-
225-@Callable(aI)
226-func withdraw (P,ak) = {
227- let aH = aw(P)
228- let as = aH[s]
229- let T = aH[t]
230- let au = parseIntValue(aH[v])
231- let M = parseIntValue(aH[w])
232- let p = parseIntValue(aH[x])
233- let at = aH[u]
234- let aA = addressFromPublicKey(fromBase58String(at))
235- let aC = ((height - au) > c)
236- let aD = O(P, p, M)
237- if ((as != A))
224+@Callable(aE)
225+func withdraw (N,ag) = {
226+ let aD = as(N)
227+ let ao = aD[p]
228+ let R = aD[q]
229+ let aq = parseIntValue(aD[s])
230+ let J = parseIntValue(aD[t])
231+ let K = parseIntValue(aD[u])
232+ let ap = aD[r]
233+ let aw = addressFromPublicKey(fromBase58String(ap))
234+ let ay = ((height - aq) > c)
235+ let az = M(N, K, J)
236+ if ((ao != x))
238237 then throw("Invalid game state for passed gameId")
239- else if (aC)
238+ else if (ay)
240239 then {
241- let ap = take(T, 1)
242- let aB = ar(B, T, at, au, M, p, ap)
243- az(P, aA, M, p, aB, aC, aD)
240+ let al = take(R, 1)
241+ let ax = an(y, R, ap, aq, J, K, al)
242+ av(N, aw, J, K, ax, ay, az)
244243 }
245244 else {
246- let ap = aj(P, ak)
247- if (ao(T, ap))
245+ let al = af(N, ag)
246+ if (ak(R, al))
248247 then {
249- let aB = ar(B, T, at, au, M, p, ap)
250- az(P, aA, M, p, aB, aC, aD)
248+ let ax = an(y, R, ap, aq, J, K, al)
249+ av(N, aw, J, K, ax, ay, az)
251250 }
252251 else {
253- let aB = ar(C, T, at, au, M, p, ap)
254- WriteSet([DataEntry(P, aB), aD])
252+ let ax = an(z, R, ap, aq, J, K, al)
253+ WriteSet([DataEntry(N, ax), az])
255254 }
256255 }
257256 }
258257
259258
260-@Verifier(aM)
261-func aN () = if (sigVerify(aM.bodyBytes, aM.proofs[0], aM.senderPublicKey))
259+@Verifier(aJ)
260+func aK () = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey))
262261 then {
263- let ax = aM
264- if ($isInstanceOf(ax, "TransferTransaction"))
262+ let at = aJ
263+ if ($isInstanceOf(at, "TransferTransaction"))
265264 then {
266- let aO = ax
267- let p = Q(aO.assetId)
268- ((assetBalance(this, aO.assetId) - aO.amount) >= D(y[p], 0))
265+ let aL = at
266+ let K = O(aL.assetId)
267+ ((assetBalance(this, aL.assetId) - aL.amount) >= A(v[K], 0))
269268 }
270- else if ($isInstanceOf(ax, "SetScriptTransaction"))
269+ else if ($isInstanceOf(at, "SetScriptTransaction"))
271270 then {
272- let aP = ax
273- if ((D(y[0], 0) == 0))
274- then (D(y[1], 0) == 0)
271+ let aM = at
272+ if ((A(v[0], 0) == 0))
273+ then (A(v[1], 0) == 0)
275274 else false
276275 }
277276 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlemr95J1jZUs7cJmrmmlN4zo7YVsBJzIeJdk8LDFGhUKSI6yfs20ZyJe21+6GJwNnKUU1Uyoc17wSWMKkrZ0MMvYE+Z5AiijvBK4sSJ3IgGjdU8/NhI8CBDu0F+xRM9q3TB3LLbDy5sBdudYfHfsUOc+MTvAD69n27db2Rh8+yZQMtubkuTQNp89sphHQaLGyQFaNlK/Na3lFx6omqzaa1gjoplUr6rvYKgfAICUB3zVmJShiEi7w7R0hWlNRD3qcZjCUONSpFo4WbzknGOazw84B+IMIFnIpXWzQL8RX0vNcfsBvLDfM6k2ZacqwyMKaLLqigdBiGdJ7W+0lOStOQIDAQAB")
55
66 let b = addressFromStringValue("3PMT9wun7BB7JABSuhTJpFgJoegRfYw2e6d")
77
88 let c = 7200
99
1010 let d = 1
1111
1212 let e = 2
1313
1414 let f = 4
1515
1616 let g = 8
1717
1818 let h = 14
1919
2020 let i = [d, e, f, g, h]
2121
2222 let j = 100000000
2323
2424 let k = 1000000
2525
2626 let l = [j, k]
2727
2828 let m = [unit, fromBase58String("DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p")]
2929
30-let n = [((5 * j) / 1000), (((5 * k) / 1000) * 10)]
30+let n = 10000
3131
32-func o (p) = n[p]
32+let o = 19000
33+
34+let p = 0
35+
36+let q = 1
37+
38+let r = 2
39+
40+let s = 3
41+
42+let t = 4
43+
44+let u = 5
45+
46+let v = ["$RESERVED_AMOUNT_WAVES", "$RESERVED_AMOUNT_USDN"]
47+
48+let w = "$GAME_NUM"
49+
50+let x = "SUBMITTED"
51+
52+let y = "WON"
53+
54+let z = "LOST"
55+
56+func A (B,C) = if (isDefined(getInteger(this, B)))
57+ then getIntegerValue(this, B)
58+ else C
3359
3460
35-let q = 10000
36-
37-let r = 19000
38-
39-let s = 0
40-
41-let t = 1
42-
43-let u = 2
44-
45-let v = 3
46-
47-let w = 4
48-
49-let x = 5
50-
51-let y = ["$RESERVED_AMOUNT_WAVES", "$RESERVED_AMOUNT_USDN"]
52-
53-let z = "$GAME_NUM"
54-
55-let A = "SUBMITTED"
56-
57-let B = "WON"
58-
59-let C = "LOST"
60-
61-func D (E,F) = if (isDefined(getInteger(this, E)))
62- then getIntegerValue(this, E)
63- else F
61+func D (B,E) = DataEntry(B, E)
6462
6563
66-func G (E,H) = DataEntry(E, H)
64+func F (B) = D(B, (A(B, -1) + 1))
6765
6866
69-func I (E) = G(E, (D(E, -1) + 1))
67+func G (B,H) = D(B, (A(B, 0) + H))
7068
7169
72-func J (E,K) = G(E, (D(E, 0) + K))
73-
74-
75-func L (M,p) = {
76- let N = (D(y[p], 0) + M)
77- if ((N > assetBalance(this, m[p])))
70+func I (J,K) = {
71+ let L = (A(v[K], 0) + J)
72+ if ((L > assetBalance(this, m[K])))
7873 then throw("Insufficient funds on Dice Roller account. Transaction was rejected for your safety.")
79- else N
74+ else L
8075 }
8176
8277
83-func O (P,p,M) = if ((0 > (D(y[p], 0) - M)))
78+func M (N,K,J) = if ((0 > (A(v[K], 0) - J)))
8479 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
85- else J(y[p], -(M))
80+ else G(v[K], -(J))
8681
8782
88-func Q (p) = if ((p == m[0]))
83+func O (K) = if ((K == m[0]))
8984 then 0
90- else if ((p == m[1]))
85+ else if ((K == m[1]))
9186 then 1
9287 else throw("Invalid payment asset")
9388
9489
95-func R (S,p,T) = {
96- let U = size(T)
97- let V = o(p)
98- func W (X,Y) = if (X)
90+func P (Q,K,R) = {
91+ let S = size(R)
92+ func T (U,V) = if (U)
9993 then true
100- else (S == ((Y * l[p]) + V))
94+ else (Q == (V * l[K]))
10195
10296 if (!({
103- let Z = i
104- let aa = size(Z)
105- let ab = false
106- if ((aa == 0))
107- then ab
97+ let W = i
98+ let X = size(W)
99+ let Y = false
100+ if ((X == 0))
101+ then Y
108102 else {
109- let ac = W(ab, Z[0])
110- if ((aa == 1))
111- then ac
103+ let Z = T(Y, W[0])
104+ if ((X == 1))
105+ then Z
112106 else {
113- let ad = W(ac, Z[1])
114- if ((aa == 2))
115- then ad
107+ let aa = T(Z, W[1])
108+ if ((X == 2))
109+ then aa
116110 else {
117- let ae = W(ad, Z[2])
118- if ((aa == 3))
119- then ae
111+ let ab = T(aa, W[2])
112+ if ((X == 3))
113+ then ab
120114 else {
121- let af = W(ae, Z[3])
122- if ((aa == 4))
123- then af
115+ let ac = T(ab, W[3])
116+ if ((X == 4))
117+ then ac
124118 else {
125- let ag = W(af, Z[4])
126- if ((aa == 5))
127- then ag
119+ let ad = T(ac, W[4])
120+ if ((X == 5))
121+ then ad
128122 else {
129- let ah = W(ag, Z[5])
123+ let ae = T(ad, W[5])
130124 throw("List size exceed 5")
131125 }
132126 }
133127 }
134128 }
135129 }
136130 }
137131 }))
138132 then throw("Bet amount is not valid")
139- else if ((parseInt(T) == unit))
133+ else if ((parseInt(R) == unit))
140134 then throw("Invalid player's choice")
141- else if ((U != 1))
135+ else if ((S != 1))
142136 then throw("Invalid length of player's choice")
137+ else ((Q * o) / n)
138+ }
139+
140+
141+func af (N,ag) = {
142+ let ah = rsaVerify(SHA256, toBytes(N), ag, a)
143+ if (!(ah))
144+ then throw("Invalid RSA signature")
145+ else {
146+ let ai = (toInt(sha256(ag)) % 2)
147+ let aj = if ((0 > ai))
148+ then (-1 * ai)
149+ else ai
150+ toString(aj)
151+ }
152+ }
153+
154+
155+func ak (R,al) = {
156+ let am = size(R)
157+ if ((am == 1))
158+ then (R == al)
159+ else false
160+ }
161+
162+
163+func an (ao,R,ap,aq,J,K,ar) = (((((((((((ao + "_") + R) + "_") + ap) + "_") + toString(aq)) + "_") + toString(J)) + "_") + toString(K)) + (if ((ar == ""))
164+ then ""
165+ else ("_" + ar)))
166+
167+
168+func as (N) = split({
169+ let at = getString(this, N)
170+ if ($isInstanceOf(at, "String"))
171+ then {
172+ let au = at
173+ au
174+ }
175+ else throw((("Game: " + N) + " not found."))
176+ }, "_")
177+
178+
179+func av (N,aw,J,K,ax,ay,az) = {
180+ let aA = [az]
181+ let aB = [ScriptTransfer(aw, J, m[K])]
182+ if (ay)
183+ then {
184+ let aC = (ax + "_TIMEOUT")
185+ let aD = DataEntry(N, aC)
186+ ScriptResult(WriteSet(aD :: aA), TransferSet(aB))
187+ }
188+ else {
189+ let aD = DataEntry(N, ax)
190+ ScriptResult(WriteSet(aD :: aA), TransferSet(aB))
191+ }
192+ }
193+
194+
195+@Callable(aE)
196+func bet (R) = {
197+ let N = toBase58String(aE.transactionId)
198+ if ((aE.payment == unit))
199+ then throw("No payment")
200+ else if (isDefined(getString(this, N)))
201+ then throw((("Bet for: " + N) + " was already made."))
202+ else if (if ((aE.feeAssetId != m[0]))
203+ then (aE.feeAssetId != m[1])
204+ else false)
205+ then throw("Invalid fee asset")
143206 else {
144- let ai = (S - V)
145- ((ai * r) / q)
207+ let aF = extract(aE.payment)
208+ if ((aE.feeAssetId != aF.assetId))
209+ then throw("Fee assetId and payment assetId should match")
210+ else {
211+ let K = O(aF.assetId)
212+ let aG = aE.fee
213+ let J = P((aF.amount - aE.fee), K, R)
214+ let aH = isDefined(getString(this, N))
215+ let ap = toBase58String(aE.callerPublicKey)
216+ let aI = an(x, R, ap, height, J, K, "")
217+ ScriptResult(WriteSet([DataEntry(v[K], I(J, K)), F(w), DataEntry(N, aI)]), TransferSet([ScriptTransfer(b, aE.fee, aE.feeAssetId)]))
218+ }
146219 }
147220 }
148221
149222
150-func aj (P,ak) = {
151- let al = rsaVerify(SHA256, toBytes(P), ak, a)
152- if (!(al))
153- then throw("Invalid RSA signature")
154- else {
155- let am = (toInt(sha256(ak)) % 2)
156- let an = if ((0 > am))
157- then (-1 * am)
158- else am
159- toString(an)
160- }
161- }
162223
163-
164-func ao (T,ap) = {
165- let aq = size(T)
166- if ((aq == 1))
167- then (T == ap)
168- else false
169- }
170-
171-
172-func ar (as,T,at,au,M,p,av) = (((((((((((as + "_") + T) + "_") + at) + "_") + toString(au)) + "_") + toString(M)) + "_") + toString(p)) + (if ((av == ""))
173- then ""
174- else ("_" + av)))
175-
176-
177-func aw (P) = split({
178- let ax = getString(this, P)
179- if ($isInstanceOf(ax, "String"))
180- then {
181- let ay = ax
182- ay
183- }
184- else throw((("Game: " + P) + " not found."))
185- }, "_")
186-
187-
188-func az (P,aA,M,p,aB,aC,aD) = {
189- let aE = [aD]
190- let aF = [ScriptTransfer(aA, M, m[p])]
191- if (aC)
192- then {
193- let aG = (aB + "_TIMEOUT")
194- let aH = DataEntry(P, aG)
195- ScriptResult(WriteSet(aH :: aE), TransferSet(aF))
196- }
197- else {
198- let aH = DataEntry(P, aB)
199- ScriptResult(WriteSet(aH :: aE), TransferSet(aF))
200- }
201- }
202-
203-
204-@Callable(aI)
205-func bet (T) = {
206- let P = toBase58String(aI.transactionId)
207- if ((aI.payment == unit))
208- then throw("No payment")
209- else if (isDefined(getString(this, P)))
210- then throw((("Bet for: " + P) + " was already made."))
211- else {
212- let aJ = extract(aI.payment)
213- let p = Q(aJ.assetId)
214- let V = o(p)
215- let M = R(aJ.amount, p, T)
216- let aK = isDefined(getString(this, P))
217- let at = toBase58String(aI.callerPublicKey)
218- let aL = ar(A, T, at, height, M, p, "")
219- ScriptResult(WriteSet([DataEntry(y[p], L(M, p)), I(z), DataEntry(P, aL)]), TransferSet([ScriptTransfer(b, V, unit)]))
220- }
221- }
222-
223-
224-
225-@Callable(aI)
226-func withdraw (P,ak) = {
227- let aH = aw(P)
228- let as = aH[s]
229- let T = aH[t]
230- let au = parseIntValue(aH[v])
231- let M = parseIntValue(aH[w])
232- let p = parseIntValue(aH[x])
233- let at = aH[u]
234- let aA = addressFromPublicKey(fromBase58String(at))
235- let aC = ((height - au) > c)
236- let aD = O(P, p, M)
237- if ((as != A))
224+@Callable(aE)
225+func withdraw (N,ag) = {
226+ let aD = as(N)
227+ let ao = aD[p]
228+ let R = aD[q]
229+ let aq = parseIntValue(aD[s])
230+ let J = parseIntValue(aD[t])
231+ let K = parseIntValue(aD[u])
232+ let ap = aD[r]
233+ let aw = addressFromPublicKey(fromBase58String(ap))
234+ let ay = ((height - aq) > c)
235+ let az = M(N, K, J)
236+ if ((ao != x))
238237 then throw("Invalid game state for passed gameId")
239- else if (aC)
238+ else if (ay)
240239 then {
241- let ap = take(T, 1)
242- let aB = ar(B, T, at, au, M, p, ap)
243- az(P, aA, M, p, aB, aC, aD)
240+ let al = take(R, 1)
241+ let ax = an(y, R, ap, aq, J, K, al)
242+ av(N, aw, J, K, ax, ay, az)
244243 }
245244 else {
246- let ap = aj(P, ak)
247- if (ao(T, ap))
245+ let al = af(N, ag)
246+ if (ak(R, al))
248247 then {
249- let aB = ar(B, T, at, au, M, p, ap)
250- az(P, aA, M, p, aB, aC, aD)
248+ let ax = an(y, R, ap, aq, J, K, al)
249+ av(N, aw, J, K, ax, ay, az)
251250 }
252251 else {
253- let aB = ar(C, T, at, au, M, p, ap)
254- WriteSet([DataEntry(P, aB), aD])
252+ let ax = an(z, R, ap, aq, J, K, al)
253+ WriteSet([DataEntry(N, ax), az])
255254 }
256255 }
257256 }
258257
259258
260-@Verifier(aM)
261-func aN () = if (sigVerify(aM.bodyBytes, aM.proofs[0], aM.senderPublicKey))
259+@Verifier(aJ)
260+func aK () = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey))
262261 then {
263- let ax = aM
264- if ($isInstanceOf(ax, "TransferTransaction"))
262+ let at = aJ
263+ if ($isInstanceOf(at, "TransferTransaction"))
265264 then {
266- let aO = ax
267- let p = Q(aO.assetId)
268- ((assetBalance(this, aO.assetId) - aO.amount) >= D(y[p], 0))
265+ let aL = at
266+ let K = O(aL.assetId)
267+ ((assetBalance(this, aL.assetId) - aL.amount) >= A(v[K], 0))
269268 }
270- else if ($isInstanceOf(ax, "SetScriptTransaction"))
269+ else if ($isInstanceOf(at, "SetScriptTransaction"))
271270 then {
272- let aP = ax
273- if ((D(y[0], 0) == 0))
274- then (D(y[1], 0) == 0)
271+ let aM = at
272+ if ((A(v[0], 0) == 0))
273+ then (A(v[1], 0) == 0)
275274 else false
276275 }
277276 else false
278277 }
279278 else false
280279

github/deemru/w8io/3ef1775 
92.17 ms