tx · 6MjK6a8hGxdYsfthntDygKdDQHemsf7ZmNC7B3zz26xs

3N2Z6EjzrzaCpD8ypDYLWDKe2PPVU8y9dJs:  -0.01400000 Waves

2019.09.06 20:03 [664482] smart account 3N2Z6EjzrzaCpD8ypDYLWDKe2PPVU8y9dJs > SELF 0.00000000 Waves

{ "type": 13, "id": "6MjK6a8hGxdYsfthntDygKdDQHemsf7ZmNC7B3zz26xs", "fee": 1400000, "feeAssetId": null, "timestamp": 1567789439748, "version": 1, "sender": "3N2Z6EjzrzaCpD8ypDYLWDKe2PPVU8y9dJs", "senderPublicKey": "HSTmdhPrJF81ozDBaqVn8QVtV76oD7gzDfcHPQRdxdwW", "proofs": [ "RZqvmLj13akfNxF7x8MH518i7BzScxE21hPi6Trf8GBmTb4NjviWTzsUYaRbFY4JzcGD6ewQ54AKqnTNmszwvX6" ], "script": "base64:AAIDAAAAAAAAAAAAAAAKAAAAAA9TZXJ2ZXJQdWJsaWNLZXkJAAJZAAAAAQIAAAAsN2ltOWNhaUNtRTRTTDZqVG00S1RpY0hINGJHUGY1djU5cm5mVUEzY0NSRGoAAAAAElNlcnZlckJldFB1YmxpY0tleQkAAlkAAAABAgAAACw3aW05Y2FpQ21FNFNMNmpUbTRLVGljSEg0YkdQZjV2NTlybmZVQTNjQ1JEagAAAAAHV0FWRUxFVAkAAGgAAAACCQAAaAAAAAIAAAAAAAAAAGQAAAAAAAAAA+gAAAAAAAAAA+gAAAAACkNPTU1JU1NJT04JAABpAAAAAgkAAGgAAAACAAAAAAAAAAAFBQAAAAdXQVZFTEVUAAAAAAAAAAPoAQAAAA9HZW5lcmF0ZVJhbmRJbnQAAAADAAAABmdhbWVJZAAAAAdyc2FTaWduAAAACmxhc3RUaWNrZXQEAAAAC3JzYVNpZ1ZhbGlkCQAB9AAAAAMJAAGbAAAAAQUAAAAGZ2FtZUlkBQAAAAdyc2FTaWduBQAAAA9TZXJ2ZXJQdWJsaWNLZXkDBQAAAAtyc2FTaWdWYWxpZAQAAAAEcmFuZAkAAGoAAAACCQAEsQAAAAEJAAH3AAAAAQUAAAAHcnNhU2lnbgUAAAAKbGFzdFRpY2tldAMJAABmAAAAAgAAAAAAAAAAAAUAAAAEcmFuZAkAAGQAAAACCQAAaAAAAAIA//////////8FAAAABHJhbmQAAAAAAAAAAAEJAABkAAAAAgUAAAAEcmFuZAAAAAAAAAAAAQkAAAIAAAABAgAAABVJbnZhbGlkIFJTQSBzaWduYXR1cmUBAAAAEWdldFBsYXllcnNUaWNrZXRzAAAAAgAAAAZnYW1lSWQAAAAGcGxheWVyBAAAAAp0aWNrZXRzU3RyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAAAV8FAAAABnBsYXllcgIAAAAIX3RpY2tldHMEAAAAEHBsYXllclRpY2tldHNTdHIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAACnRpY2tldHNTdHIFAAAAEHBsYXllclRpY2tldHNTdHIBAAAAElBhcnNlTmV4dEF0dHJpYnV0ZQAAAAEAAAAJcmVtYWluaW5nBAAAAAFzCQABMQAAAAEFAAAACXJlbWFpbmluZwMJAABmAAAAAgUAAAABcwAAAAAAAAAAAAQAAAACbm4JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAS8AAAACBQAAAAlyZW1haW5pbmcAAAAAAAAAAAIEAAAAAXYJAAEvAAAAAgkAATAAAAACBQAAAAlyZW1haW5pbmcAAAAAAAAAAAIFAAAAAm5uBAAAAAx0bXBSZW1haW5pbmcJAAEwAAAAAgUAAAAJcmVtYWluaW5nCQAAZAAAAAIFAAAAAm5uAAAAAAAAAAACBAAAAA5yZW1haW5pbmdTdGF0ZQUAAAAMdG1wUmVtYWluaW5nCQAETAAAAAIFAAAAAXYJAARMAAAAAgUAAAAOcmVtYWluaW5nU3RhdGUFAAAAA25pbAkAAAIAAAABAgAAADRFbXB0eSBzdHJpbmcgd2FzIHBhc3NlZCBpbnRvIHBhcnNlTmV4dEF0dHJpYnV0ZSBmdW5jAQAAAAtwYXJzZUJldFN0cgAAAAEAAAAKdGlja2V0c1N0cgkABEwAAAACAgAAAAExCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDEJAARMAAAAAgIAAAADMzAwCQAETAAAAAICAAAAATAJAARMAAAAAgIAAAABMAkABEwAAAACAgAAAAEwCQAETAAAAAICAAAAATAFAAAAA25pbAEAAAAIaXNXaW5uZXIAAAADAAAABmdhbWVJZAAAAAZwbGF5ZXIAAAAJd2luVGlja2V0BAAAAA1wbGF5ZXJzVGlja2V0CQEAAAARZ2V0UGxheWVyc1RpY2tldHMAAAACBQAAAAZnYW1lSWQFAAAABnBsYXllcgQAAAAEYmV0cwkBAAAAC3BhcnNlQmV0U3RyAAAAAQUAAAANcGxheWVyc1RpY2tldAMDCQAAZwAAAAIFAAAACXdpblRpY2tldAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGJldHMAAAAAAAAAAAAJAABnAAAAAgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGJldHMAAAAAAAAAAAEFAAAACXdpblRpY2tldAcGAwMJAABnAAAAAgUAAAAJd2luVGlja2V0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAEYmV0cwAAAAAAAAAAAgkAAGcAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAEYmV0cwAAAAAAAAAAAwUAAAAJd2luVGlja2V0BwYDAwkAAGcAAAACBQAAAAl3aW5UaWNrZXQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARiZXRzAAAAAAAAAAAECQAAZwAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARiZXRzAAAAAAAAAAAFBQAAAAl3aW5UaWNrZXQHBgMDCQAAZwAAAAIFAAAACXdpblRpY2tldAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGJldHMAAAAAAAAAAAYJAABnAAAAAgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGJldHMAAAAAAAAAAAcFAAAACXdpblRpY2tldAcGBwEAAAAMZGVmaW5lV2lubmVyAAAABAAAAAZnYW1lSWQAAAAHcGxheWVycwAAAAp3aW5BbW91bnRzAAAACXdpblRpY2tldAQAAAALcGxheWVyc0xpc3QJAAS1AAAAAgUAAAAHcGxheWVycwIAAAABXwQAAAAOd2luQW1vdW50c0xpc3QJAAS1AAAAAgUAAAAKd2luQW1vdW50cwIAAAABXwMJAQAAAAhpc1dpbm5lcgAAAAMFAAAABmdhbWVJZAkAAZEAAAACBQAAAAtwbGF5ZXJzTGlzdAAAAAAAAAAAAAUAAAAJd2luVGlja2V0AAAAAAAAAAAAAwkBAAAACGlzV2lubmVyAAAAAwUAAAAGZ2FtZUlkCQABkQAAAAIFAAAAC3BsYXllcnNMaXN0AAAAAAAAAAABBQAAAAl3aW5UaWNrZXQAAAAAAAAAAAEDCQEAAAAIaXNXaW5uZXIAAAADBQAAAAZnYW1lSWQJAAGRAAAAAgUAAAALcGxheWVyc0xpc3QAAAAAAAAAAAIFAAAACXdpblRpY2tldAAAAAAAAAAAAgMJAQAAAAhpc1dpbm5lcgAAAAMFAAAABmdhbWVJZAkAAZEAAAACBQAAAAtwbGF5ZXJzTGlzdAAAAAAAAAAAAwUAAAAJd2luVGlja2V0AAAAAAAAAAADAwkBAAAACGlzV2lubmVyAAAAAwUAAAAGZ2FtZUlkCQABkQAAAAIFAAAAC3BsYXllcnNMaXN0AAAAAAAAAAAEBQAAAAl3aW5UaWNrZXQAAAAAAAAAAAQDCQEAAAAIaXNXaW5uZXIAAAADBQAAAAZnYW1lSWQJAAGRAAAAAgUAAAALcGxheWVyc0xpc3QAAAAAAAAAAAUFAAAACXdpblRpY2tldAAAAAAAAAAABQkAAAIAAAABAgAAABpFcnJvciB3aXRoIGRlZmluaW5nIHdpbm5lcgAAAAIAAAABaQEAAAADYmV0AAAAAwAAAAZnYW1lSWQAAAAQZ2FtZUlkQ3J5cHRlZFN0cgAAAAd0aWNrZXRzBAAAAA1nYW1lSWRDcnlwdGVkCQACWQAAAAEFAAAAEGdhbWVJZENyeXB0ZWRTdHIEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAA1iZXROb3RJbldhdmVzCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkBAAAAA1mZWVOb3RJbldhdmVzCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkBAAAAA5wbGF5ZXJQdWJLZXk1OAkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADXBsYXllckFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAAOcGxheWVyUHViS2V5NTgEAAAADWdhbWVTdGlsbE9wZW4JAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAGZ2FtZUlkAgAAAAdfcmVzdWx0AwkBAAAAASEAAAABBQAAAA1nYW1lU3RpbGxPcGVuAwUAAAANYmV0Tm90SW5XYXZlcwkAAAIAAAABAgAAABtCZXQgYW1vdW50IG11c3QgYmUgaW4gV2F2ZXMDBQAAAA1mZWVOb3RJbldhdmVzCQAAAgAAAAECAAAAIlRyYW5zYWN0aW9uJ3MgZmVlIG11c3QgYmUgaW4gV2F2ZXMEAAAAC3JzYVNpZ1ZhbGlkCQAB9AAAAAMJAAGbAAAAAQUAAAAGZ2FtZUlkBQAAAA1nYW1lSWRDcnlwdGVkBQAAABJTZXJ2ZXJCZXRQdWJsaWNLZXkDBQAAAAtyc2FTaWdWYWxpZAQAAAAQcGxheWVyQWRkcmVzc1N0cgkABCUAAAABBQAAAA1wbGF5ZXJBZGRyZXNzBAAAAAdiZXREYXRhCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAAAV8FAAAAEHBsYXllckFkZHJlc3NTdHICAAAACF90aWNrZXRzBQAAAAd0aWNrZXRzBQAAAANuaWwJAQAAAAhXcml0ZVNldAAAAAEFAAAAB2JldERhdGEJAAACAAAAAQIAAAAVSW52YWxpZCBSU0Egc2lnbmF0dXJlCQAAAgAAAAECAAAAKVRoaXMgZ2FtZSBhbHJlYWR5IGVuZCwgdHJ5IG1ha2UgYmV0IGFnYWluAAAAAWkBAAAADmdlbmVyYXRlUmVzdWx0AAAABQAAAAZnYW1lSWQAAAAOcnNhU2lnbkNyeXB0ZWQAAAAKbGFzdFRpY2tldAAAAAdwbGF5ZXJzAAAACndpbkFtb3VudHMEAAAAB3JzYVNpZ24JAAJZAAAAAQUAAAAOcnNhU2lnbkNyeXB0ZWQEAAAACXdpblRpY2tldAkBAAAAD0dlbmVyYXRlUmFuZEludAAAAAMFAAAABmdhbWVJZAUAAAAHcnNhU2lnbgUAAAAKbGFzdFRpY2tldAQAAAALcGxheWVyc0xpc3QJAAS1AAAAAgUAAAAHcGxheWVycwIAAAABXwQAAAAOd2luQW1vdW50c0xpc3QJAAS1AAAAAgUAAAAKd2luQW1vdW50cwIAAAABXwQAAAAJd2lubmVyTnVtCQEAAAAMZGVmaW5lV2lubmVyAAAABAUAAAAGZ2FtZUlkBQAAAAdwbGF5ZXJzBQAAAAp3aW5BbW91bnRzBQAAAAl3aW5UaWNrZXQEAAAABXdpblRYCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAAtwbGF5ZXJzTGlzdAUAAAAJd2lubmVyTnVtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAOd2luQW1vdW50c0xpc3QFAAAACXdpbm5lck51bQUAAAAEdW5pdAUAAAADbmlsBAAAAApnYW1lUmVzdWx0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAABmdhbWVJZAIAAAAHX3Jlc3VsdAkAAaQAAAABBQAAAAl3aW5UaWNrZXQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAGZ2FtZUlkAgAAAAdfd2lubmVyCQABkQAAAAIFAAAAC3BsYXllcnNMaXN0BQAAAAl3aW5uZXJOdW0JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAGZ2FtZUlkAgAAAAdfd2luQW10CQABkQAAAAIFAAAADndpbkFtb3VudHNMaXN0BQAAAAl3aW5uZXJOdW0FAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEFAAAACmdhbWVSZXN1bHQJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAABXdpblRYAAAAAIOrGsA=", "chainId": 84, "height": 664482, "spentComplexity": 0 } View: original | compacted Prev: 4m21MpLuugmVJucmk6mwDGaahTC8cXFgsBiTeFoGu7qD Next: 5tEKP6aVwiDYZSB1sW2Zrrn2cjuUeEa1W1bxU51MuT2W Diff:
OldNewDifferences
99
1010 let d = ((5 * c) / 1000)
1111
12-let e = 100
13-
14-func f (g,h,i) = {
15- let j = sigVerify(toBytes(g), h, a)
16- if (j)
12+func e (f,g,h) = {
13+ let i = sigVerify(toBytes(f), g, a)
14+ if (i)
1715 then {
18- let k = (toInt(sha256(h)) % i)
19- if ((0 > k))
20- then ((-1 * k) + 1)
21- else (k + 1)
16+ let j = (toInt(sha256(g)) % h)
17+ if ((0 > j))
18+ then ((-1 * j) + 1)
19+ else (j + 1)
2220 }
2321 else throw("Invalid RSA signature")
2422 }
2523
2624
27-func l (g) = {
28- let m = {
29- let n = getString(this, g)
30- if ($isInstanceOf(n, "String"))
31- then {
32- let o = n
33- o
34- }
35- else throw(("Couldn't find game by " + g))
36- }
37- split(m, "_")
25+func k (f,l) = {
26+ let m = (((f + "_") + l) + "_tickets")
27+ let n = getStringValue(this, m)
28+ n
3829 }
3930
4031
41-func p (g,q) = {
42- let r = {
43- let n = getString(this, ((g + "_") + q))
44- if ($isInstanceOf(n, "String"))
45- then {
46- let o = n
47- o
48- }
49- else throw(("Couldn't find game by " + g))
50- }
51- split(r, " ")
32+func o (p) = {
33+ let q = size(p)
34+ if ((q > 0))
35+ then {
36+ let r = parseIntValue(take(p, 2))
37+ let s = take(drop(p, 2), r)
38+ let t = drop(p, (r + 2))
39+ let u = t
40+[s, u]
41+ }
42+ else throw("Empty string was passed into parseNextAttribute func")
5243 }
5344
5445
55-@Callable(s)
56-func bet (g,t,u) = {
57- let v = extract(s.payment)
58- let w = isDefined(v.assetId)
59- let x = isDefined(v.assetId)
60- let y = toBase58String(s.callerPublicKey)
61- let z = addressFromPublicKey(fromBase58String(y))
62- if (w)
63- then throw("Bet amount must be in Waves")
64- else if (x)
65- then throw("Transaction's fee must be in Waves")
66- else {
67- let j = sigVerify(toBytes(g), t, b)
68- if (j)
69- then {
70- let A = toString(z)
71- let B = [DataEntry((A + "_tickets"), u)]
72- WriteSet(B)
73- }
74- else throw("Invalid RSA signature")
75- }
46+func v (m) = ["1", "100", "101", "300", "0", "0", "0", "0"]
47+
48+
49+func w (f,l,x) = {
50+ let y = k(f, l)
51+ let z = v(y)
52+ if (if ((x >= parseIntValue(z[0])))
53+ then (parseIntValue(z[1]) >= x)
54+ else false)
55+ then true
56+ else if (if ((x >= parseIntValue(z[2])))
57+ then (parseIntValue(z[3]) >= x)
58+ else false)
59+ then true
60+ else if (if ((x >= parseIntValue(z[4])))
61+ then (parseIntValue(z[5]) >= x)
62+ else false)
63+ then true
64+ else if (if ((x >= parseIntValue(z[6])))
65+ then (parseIntValue(z[7]) >= x)
66+ else false)
67+ then true
68+ else false
69+ }
70+
71+
72+func A (f,B,C,x) = {
73+ let D = split(B, "_")
74+ let E = split(C, "_")
75+ if (w(f, D[0], x))
76+ then 0
77+ else if (w(f, D[1], x))
78+ then 1
79+ else if (w(f, D[2], x))
80+ then 2
81+ else if (w(f, D[3], x))
82+ then 3
83+ else if (w(f, D[4], x))
84+ then 4
85+ else if (w(f, D[5], x))
86+ then 5
87+ else throw("Error with defining winner")
88+ }
89+
90+
91+@Callable(F)
92+func bet (f,G,H) = {
93+ let I = fromBase58String(G)
94+ let J = extract(F.payment)
95+ let K = isDefined(J.assetId)
96+ let L = isDefined(J.assetId)
97+ let M = toBase58String(F.callerPublicKey)
98+ let N = addressFromPublicKey(fromBase58String(M))
99+ let O = isDefined(getString(this, (f + "_result")))
100+ if (!(O))
101+ then if (K)
102+ then throw("Bet amount must be in Waves")
103+ else if (L)
104+ then throw("Transaction's fee must be in Waves")
105+ else {
106+ let i = sigVerify(toBytes(f), I, b)
107+ if (i)
108+ then {
109+ let P = toString(N)
110+ let Q = [DataEntry((((f + "_") + P) + "_tickets"), H)]
111+ WriteSet(Q)
112+ }
113+ else throw("Invalid RSA signature")
114+ }
115+ else throw("This game already end, try make bet again")
76116 }
77117
78118
79119
80-@Callable(s)
81-func generateResult (g,C,i) = {
82- let h = fromBase58String(C)
83- let D = f(g, h, i)
84- let E = [DataEntry((g + "_result"), toString(D))]
85- let F = l(g)
86- let G = p(g, F[0])
87- let H = parseIntValue(G[0])
88- let I = parseIntValue(G[1])
89- if (if ((D >= H))
90- then (I >= D)
91- else false)
92- then {
93- let J = 100000000
94- ScriptResult(WriteSet(E), TransferSet([ScriptTransfer(addressFromStringValue(F[0]), J, unit)]))
95- }
96- else throw("Player1 not the Winner")
120+@Callable(F)
121+func generateResult (f,R,h,B,C) = {
122+ let g = fromBase58String(R)
123+ let x = e(f, g, h)
124+ let D = split(B, "_")
125+ let E = split(C, "_")
126+ let S = A(f, B, C, x)
127+ let T = [ScriptTransfer(addressFromStringValue(D[S]), parseIntValue(E[S]), unit)]
128+ let U = [DataEntry((f + "_result"), toString(x)), DataEntry((f + "_winner"), D[S]), DataEntry((f + "_winAmt"), E[S])]
129+ ScriptResult(WriteSet(U), TransferSet(T))
97130 }
98131
99132
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = fromBase58String("7im9caiCmE4SL6jTm4KTicHH4bGPf5v59rnfUA3cCRDj")
55
66 let b = fromBase58String("7im9caiCmE4SL6jTm4KTicHH4bGPf5v59rnfUA3cCRDj")
77
88 let c = ((100 * 1000) * 1000)
99
1010 let d = ((5 * c) / 1000)
1111
12-let e = 100
13-
14-func f (g,h,i) = {
15- let j = sigVerify(toBytes(g), h, a)
16- if (j)
12+func e (f,g,h) = {
13+ let i = sigVerify(toBytes(f), g, a)
14+ if (i)
1715 then {
18- let k = (toInt(sha256(h)) % i)
19- if ((0 > k))
20- then ((-1 * k) + 1)
21- else (k + 1)
16+ let j = (toInt(sha256(g)) % h)
17+ if ((0 > j))
18+ then ((-1 * j) + 1)
19+ else (j + 1)
2220 }
2321 else throw("Invalid RSA signature")
2422 }
2523
2624
27-func l (g) = {
28- let m = {
29- let n = getString(this, g)
30- if ($isInstanceOf(n, "String"))
31- then {
32- let o = n
33- o
34- }
35- else throw(("Couldn't find game by " + g))
36- }
37- split(m, "_")
25+func k (f,l) = {
26+ let m = (((f + "_") + l) + "_tickets")
27+ let n = getStringValue(this, m)
28+ n
3829 }
3930
4031
41-func p (g,q) = {
42- let r = {
43- let n = getString(this, ((g + "_") + q))
44- if ($isInstanceOf(n, "String"))
45- then {
46- let o = n
47- o
48- }
49- else throw(("Couldn't find game by " + g))
50- }
51- split(r, " ")
32+func o (p) = {
33+ let q = size(p)
34+ if ((q > 0))
35+ then {
36+ let r = parseIntValue(take(p, 2))
37+ let s = take(drop(p, 2), r)
38+ let t = drop(p, (r + 2))
39+ let u = t
40+[s, u]
41+ }
42+ else throw("Empty string was passed into parseNextAttribute func")
5243 }
5344
5445
55-@Callable(s)
56-func bet (g,t,u) = {
57- let v = extract(s.payment)
58- let w = isDefined(v.assetId)
59- let x = isDefined(v.assetId)
60- let y = toBase58String(s.callerPublicKey)
61- let z = addressFromPublicKey(fromBase58String(y))
62- if (w)
63- then throw("Bet amount must be in Waves")
64- else if (x)
65- then throw("Transaction's fee must be in Waves")
66- else {
67- let j = sigVerify(toBytes(g), t, b)
68- if (j)
69- then {
70- let A = toString(z)
71- let B = [DataEntry((A + "_tickets"), u)]
72- WriteSet(B)
73- }
74- else throw("Invalid RSA signature")
75- }
46+func v (m) = ["1", "100", "101", "300", "0", "0", "0", "0"]
47+
48+
49+func w (f,l,x) = {
50+ let y = k(f, l)
51+ let z = v(y)
52+ if (if ((x >= parseIntValue(z[0])))
53+ then (parseIntValue(z[1]) >= x)
54+ else false)
55+ then true
56+ else if (if ((x >= parseIntValue(z[2])))
57+ then (parseIntValue(z[3]) >= x)
58+ else false)
59+ then true
60+ else if (if ((x >= parseIntValue(z[4])))
61+ then (parseIntValue(z[5]) >= x)
62+ else false)
63+ then true
64+ else if (if ((x >= parseIntValue(z[6])))
65+ then (parseIntValue(z[7]) >= x)
66+ else false)
67+ then true
68+ else false
69+ }
70+
71+
72+func A (f,B,C,x) = {
73+ let D = split(B, "_")
74+ let E = split(C, "_")
75+ if (w(f, D[0], x))
76+ then 0
77+ else if (w(f, D[1], x))
78+ then 1
79+ else if (w(f, D[2], x))
80+ then 2
81+ else if (w(f, D[3], x))
82+ then 3
83+ else if (w(f, D[4], x))
84+ then 4
85+ else if (w(f, D[5], x))
86+ then 5
87+ else throw("Error with defining winner")
88+ }
89+
90+
91+@Callable(F)
92+func bet (f,G,H) = {
93+ let I = fromBase58String(G)
94+ let J = extract(F.payment)
95+ let K = isDefined(J.assetId)
96+ let L = isDefined(J.assetId)
97+ let M = toBase58String(F.callerPublicKey)
98+ let N = addressFromPublicKey(fromBase58String(M))
99+ let O = isDefined(getString(this, (f + "_result")))
100+ if (!(O))
101+ then if (K)
102+ then throw("Bet amount must be in Waves")
103+ else if (L)
104+ then throw("Transaction's fee must be in Waves")
105+ else {
106+ let i = sigVerify(toBytes(f), I, b)
107+ if (i)
108+ then {
109+ let P = toString(N)
110+ let Q = [DataEntry((((f + "_") + P) + "_tickets"), H)]
111+ WriteSet(Q)
112+ }
113+ else throw("Invalid RSA signature")
114+ }
115+ else throw("This game already end, try make bet again")
76116 }
77117
78118
79119
80-@Callable(s)
81-func generateResult (g,C,i) = {
82- let h = fromBase58String(C)
83- let D = f(g, h, i)
84- let E = [DataEntry((g + "_result"), toString(D))]
85- let F = l(g)
86- let G = p(g, F[0])
87- let H = parseIntValue(G[0])
88- let I = parseIntValue(G[1])
89- if (if ((D >= H))
90- then (I >= D)
91- else false)
92- then {
93- let J = 100000000
94- ScriptResult(WriteSet(E), TransferSet([ScriptTransfer(addressFromStringValue(F[0]), J, unit)]))
95- }
96- else throw("Player1 not the Winner")
120+@Callable(F)
121+func generateResult (f,R,h,B,C) = {
122+ let g = fromBase58String(R)
123+ let x = e(f, g, h)
124+ let D = split(B, "_")
125+ let E = split(C, "_")
126+ let S = A(f, B, C, x)
127+ let T = [ScriptTransfer(addressFromStringValue(D[S]), parseIntValue(E[S]), unit)]
128+ let U = [DataEntry((f + "_result"), toString(x)), DataEntry((f + "_winner"), D[S]), DataEntry((f + "_winAmt"), E[S])]
129+ ScriptResult(WriteSet(U), TransferSet(T))
97130 }
98131
99132

github/deemru/w8io/026f985 
32.21 ms