tx · 6NHAgnu74ezEy4aFc8XosCpBg6hRnk3hedpC98ahFY8Q

3N7NT5659r9nQzVkmhBRvAfydAn1wwwd42u:  -0.01500000 Waves

2019.06.26 19:44 [559355] smart account 3N7NT5659r9nQzVkmhBRvAfydAn1wwwd42u > SELF 0.00000000 Waves

{ "type": 13, "id": "6NHAgnu74ezEy4aFc8XosCpBg6hRnk3hedpC98ahFY8Q", "fee": 1500000, "feeAssetId": null, "timestamp": 1561567510698, "version": 1, "sender": "3N7NT5659r9nQzVkmhBRvAfydAn1wwwd42u", "senderPublicKey": "6QzVeZWRXnNziYFSUH7mk7mh6Jeg3nvByW4Bk7q3TZW5", "proofs": [ "4j9c8KN3qFs5sxmq55jyGZpVuqqDvZjBDB53TAJEJq7r8azTzeoFk8e7wAC3arnWxnHSz1BHGBehMZzvB3GdU8ju" ], "script": "base64:AAIDAAAAAAAAAAAAAAANAAAAAAlSU0FQVUJMSUMJAAJbAAAAAQIAAAGPYmFzZTY0Ok1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcWxBaUFOU21CcERIWUtQOXNLZ2VOL2wxYkFiMjhnL3RHbGdEa3dUNUZpTU40WDNwd2R2ZHhFN212U1I4LzQxZFU5cng0akcrNnRacGIxVUxWRFBzNDMxdFIySVJhVFh3NUNqK0FjMnZoTCs1SmFtQ2VyR0QxVVcrYmgvRUdRdHhvOFczWUxEcm9mWEI1UUhKeDRQa3oyS2dmK29TL0M4aEh1Qi9VNGtyTzc2VTA1MDdHVGpaUFA5a1JRMHVMU01lcVFYdDh3WFMrbk1wNXdhanF4UHBETE1hU1JFZ3NLd3YvQUVrUDRkenBUWWJpa0xCWWw0cXRkSnNEODRITEZTa2l3ZDNCaGNPclBqb0lZbUx4UXVCRDVUSU1LVEtEM3NkWmdhWTlyc3lxeDNBMDBpbm55eEQ2enAzYjRnRnBVT1g4SnhLWmRFQzJteUVxbGVOZ2c3R3p3SURBUUFCAAAAAAZTRVJWRVIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM05DaUcyOExtV3lUaWdXRzEzRTVRbnZkSEJzWkZZWFNTMmoAAAAAEFNFU1NJT05JREZJWFNJWkUAAAAAAAAAADIAAAAACUVNUFRZVkVDVAkAAZsAAAABAgAAAAAAAAAACVNUQVRFSU5JVAIAAAAESU5JVAAAAAAKU1RBVEVSRUFEWQIAAAAFUkVBRFkAAAAADVNUQVRFRklOSVNIRUQCAAAACEZJTklTSEVEAQAAAANhYnMAAAABAAAAA3ZhbAMJAABmAAAAAgAAAAAAAAAAAAUAAAADdmFsCQEAAAABLQAAAAEFAAAAA3ZhbAUAAAADdmFsAQAAABJmb3JtYXRTdGF0ZURhdGFTdHIAAAADAAAACWRyYXdTdGF0ZQAAABFvcmdhbml6ZXJQdWJLZXk1OAAAAAtyYW5kT3JFbXB0eQQAAAAMZnVsbFN0YXRlU3RyCQABLAAAAAIJAAEsAAAAAgUAAAAJZHJhd1N0YXRlAgAAAAFfBQAAABFvcmdhbml6ZXJQdWJLZXk1OAMJAAAAAAAAAgUA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bnMHAAAAAwAAAAFpAQAAAAhpbml0RHJhdwAAAAEAAAAJc2Vzc2lvbklkBAAAAAtiYXNlNThWYWxpZAkAAGYAAAACCQAAyAAAAAEJAAJZAAAAAQUAAAAJc2Vzc2lvbklkAAAAAAAAAAAAAwkBAAAAAiE9AAAAAgkAATEAAAABBQAAAAlzZXNzaW9uSWQFAAAAEFNFU1NJT05JREZJWFNJWkUJAAACAAAAAQIAAAAiRHJhdyBJZCBtdXN0IGJlIGV4YWN0bHkgNTAgc2ltYm9scwMJAQAAAAEhAAAAAQUAAAALYmFzZTU4VmFsaWQJAAACAAAAAQIAAAAgRHJhdyBpZCBtdXN0IGJlIGluIEJhc2U1OCBmb3JtYXQEAAAAEW9yZ2FuaXplclB1YktleTU4CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAJaW5pdFN0YXRlCQEAAAASZm9ybWF0U3RhdGVEYXRhU3RyAAAAAwUAAAAJU1RBVEVJTklUBQAAABFvcmdhbml6ZXJQdWJLZXk1OAIAAAAACQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAlzZXNzaW9uSWQFAAAACWluaXRTdGF0ZQUAAAADbmlsAAAAAWkBAAAABXJlYWR5AAAAAQAAAAlzZXNzaW9uSWQEAAAADmRyYXdQYXJhbXNMaXN0CQEAAAATZXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAACXNlc3Npb25JZAQAAAAJZHJhd1N0YXRlCQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0AAAAAAAAAAAABAAAABFvcmdhbml6ZXJQdWJLZXk1OAkAAZEAAAACBQAAAA5kcmF3UGFyYW1zTGlzdAAAAAAAAAAAAQQAAAAPb3JnYW5pemVyUHViS2V5CQACWQAAAAEFAAAAEW9yZ2FuaXplclB1YktleTU4AwkBAAAAAiE9AAAAAgUAAAAJZHJhd1N0YXRlBQAAAAlTVEFURUlOSVQJAAACAAAAAQkAASwAAAACBQAAAAlzZXNzaW9uSWQCAAAAPiBkcmF3OiBtb3ZpbmcgaW50byBSRUFEWSBzdGF0ZSBpcyBhbGxvd2VkIG9ubHkgZnJvbSBJTklUIHN0YXRlAwkBAAAAAiE9AAAAAgUAAAAPb3JnYW5pemVyUHViS2V5CAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQkAASwAAAACBQAAAAlzZXNzaW9uSWQCAAAAO2RyYXc6IG1vdmluZyBpbnRvIFJFQURZIHN0YXRlIGlzIGFsbG93ZWQgZm9yIG9yZ2FuaXplciBvbmx5BAAAAApyZWFkeVN0YXRlCQEAAAASZm9ybWF0U3RhdGVEYXRhU3RyAAAAAwUAAAAKU1RBVEVSRUFEWQUAAAARb3JnYW5pemVyUHViS2V5NTgCAAAAAAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAJc2Vzc2lvbklkBQAAAApyZWFkeVN0YXRlBQAAAANuaWwAAAABaQEAAAAGcmFuZG9tAAAAAgAAAAlzZXNzaW9uSWQAAAAHcnNhU2lnbgQAAAAEZnJvbQAAAAAAAAAAAQQAAAACdG8AAAAAAAAAAGQEAAAADmRyYXdQYXJhbXNMaXN0CQEAAAATZXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAACXNlc3Npb25JZAQAAAAJZHJhd1N0YXRlCQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0AAAAAAAAAAAABAAAABFvcmdhbml6ZXJQdWJLZXk1OAkAAZEAAAACBQAAAA5kcmF3UGFyYW1zTGlzdAAAAAAAAAAAAQQAAAAPb3JnYW5pemVyUHViS2V5CQACWQAAAAEFAAAAEW9yZ2FuaXplclB1YktleTU4AwkBAAAAAiE9AAAAAgUAAAAJZHJhd1N0YXRlBQAAAApTVEFURVJFQURZCQAAAgAAAAEJAAEsAAAAAgUAAAAJc2Vzc2lvbklkAgAAADsgZHJhdzogaXQgbXVzdCBiZSBpbiBSRUFEWSBzdGF0ZSB0byBnZW5lcmF0ZSByYW5kb20gbnVtYmVycwMJAQAAAAEhAAAAAQkAAfgAAAAEBQAAAAZTSEEyNTYJAAGbAAAAAQUAAAAJc2Vzc2lvbklkBQAAAAdyc2FTaWduBQAAAAlSU0FQVUJMSUMJAAACAAAAAQIAAAAVSW52YWxpZCBSU0Egc2lnbmF0dXJlBAAAAAhjdXJyVmVjdAkBAAAAE2dlbmVyYXRlUmFuZHNWZWN0b3IAAAAE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", "chainId": 84, "height": 559355, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let RSAPUBLIC = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqlAiANSmBpDHYKP9sKgeN/l1bAb28g/tGlgDkwT5FiMN4X3pwdvdxE7mvSR8/41dU9rx4jG+6tZpb1ULVDPs431tR2IRaTXw5Cj+Ac2vhL+5JamCerGD1UW+bh/EGQtxo8W3YLDrofXB5QHJx4Pkz2Kgf+oS/C8hHuB/U4krO76U0507GTjZPP9kRQ0uLSMeqQXt8wXS+nMp5wajqxPpDLMaSREgsKwv/AEkP4dzpTYbikLBYl4qtdJsD84HLFSkiwd3BhcOrPjoIYmLxQuBD5TIMKTKD3sdZgaY9rsyqx3A00innyxD6zp3b4gFpUOX8JxKZdEC2myEqleNgg7GzwIDAQAB")
5+
6+let SERVER = addressFromStringValue("3NCiG28LmWyTigWG13E5QnvdHBsZFYXSS2j")
7+
8+let SESSIONIDFIXSIZE = 50
9+
10+let EMPTYVECT = toBytes("")
11+
12+let STATEINIT = "INIT"
13+
14+let STATEREADY = "READY"
15+
16+let STATEFINISHED = "FINISHED"
17+
18+func abs (val) = if ((0 > val))
19+ then -(val)
20+ else val
21+
22+
23+func formatStateDataStr (drawState,organizerPubKey58,randOrEmpty) = {
24+ let fullStateStr = ((drawState + "_") + organizerPubKey58)
25+ if ((randOrEmpty == ""))
26+ then fullStateStr
27+ else ((fullStateStr + "_") + randOrEmpty)
28+ }
29+
30+
31+func extractGameDataList (sessionId) = {
32+ let rawDataStr = getStringValue(this, sessionId)
33+ split(rawDataStr, "_")
34+ }
35+
36+
37+func nextRand (currRandsVect,remainingHash) = {
38+ let nextRandInt = abs(toInt(remainingHash))
39+ let nextRandVect = toBytes(nextRandInt)
40+ let s = (size(currRandsVect) / 8)
41+ if ((0 == s))
42+ then [nextRandVect, drop(remainingHash, 1)]
43+ else [(currRandsVect + nextRandVect), drop(remainingHash, 1)]
44+ }
45+
46+
47+func generateRandsVector (sessionId,from,to,rsaSign) = {
48+ let emptyVec = toBytes("")
49+ let randHash = sha256(rsaSign)
50+ let nextInfo1 = nextRand(emptyVec, randHash)
51+ let nextInfo2 = nextRand(nextInfo1[0], nextInfo1[1])
52+ let nextInfo3 = nextRand(nextInfo2[0], nextInfo2[1])
53+ let nextInfo4 = nextRand(nextInfo3[0], nextInfo3[1])
54+ let nextInfo5 = nextRand(nextInfo4[0], nextInfo4[1])
55+ let nextInfo6 = nextRand(nextInfo5[0], nextInfo5[1])
56+ let nextInfo7 = nextRand(nextInfo6[0], nextInfo6[1])
57+ let nextInfo8 = nextRand(nextInfo7[0], nextInfo7[1])
58+ let nextInfo9 = nextRand(nextInfo8[0], nextInfo8[1])
59+ let nextInfo10 = nextRand(nextInfo9[0], nextInfo9[1])
60+ let nextInfo11 = nextRand(nextInfo10[0], nextInfo10[1])
61+ let nextInfo12 = nextRand(nextInfo11[0], nextInfo11[1])
62+ let nextInfo13 = nextRand(nextInfo12[0], nextInfo12[1])
63+ let nextInfo14 = nextRand(nextInfo13[0], nextInfo13[1])
64+ let nextInfo15 = nextRand(nextInfo14[0], nextInfo14[1])
65+nextInfo15[0]
66+ }
67+
68+
69+func validateDtxKey (sessionId,data,dataEntriesCount,iteration) = {
70+ let sessionIdFromKey = take(data.key, SESSIONIDFIXSIZE)
71+ if ((iteration >= dataEntriesCount))
72+ then true
73+ else if (if (if ((sessionId == sessionIdFromKey))
74+ then (size(data.key) > SESSIONIDFIXSIZE)
75+ else false)
76+ then !(isDefined(getString(this, data.key)))
77+ else false)
78+ then match data.value {
79+ case str: String =>
80+ true
81+ case _ =>
82+ throw((sessionId + " draw: only String type is accepted for data transactions"))
83+ }
84+ else false
85+ }
86+
87+
88+@Callable(i)
89+func initDraw (sessionId) = {
90+ let base58Valid = (size(fromBase58String(sessionId)) > 0)
91+ if ((size(sessionId) != SESSIONIDFIXSIZE))
92+ then throw("Draw Id must be exactly 50 simbols")
93+ else if (!(base58Valid))
94+ then throw("Draw id must be in Base58 format")
95+ else {
96+ let organizerPubKey58 = toBase58String(i.callerPublicKey)
97+ let initState = formatStateDataStr(STATEINIT, organizerPubKey58, "")
98+ WriteSet([DataEntry(sessionId, initState)])
99+ }
100+ }
101+
102+
103+
104+@Callable(i)
105+func ready (sessionId) = {
106+ let drawParamsList = extractGameDataList(sessionId)
107+ let drawState = drawParamsList[0]
108+ let organizerPubKey58 = drawParamsList[1]
109+ let organizerPubKey = fromBase58String(organizerPubKey58)
110+ if ((drawState != STATEINIT))
111+ then throw((sessionId + " draw: moving into READY state is allowed only from INIT state"))
112+ else if ((organizerPubKey != i.callerPublicKey))
113+ then throw((sessionId + "draw: moving into READY state is allowed for organizer only"))
114+ else {
115+ let readyState = formatStateDataStr(STATEREADY, organizerPubKey58, "")
116+ WriteSet([DataEntry(sessionId, readyState)])
117+ }
118+ }
119+
120+
121+
122+@Callable(i)
123+func random (sessionId,rsaSign) = {
124+ let from = 1
125+ let to = 100
126+ let drawParamsList = extractGameDataList(sessionId)
127+ let drawState = drawParamsList[0]
128+ let organizerPubKey58 = drawParamsList[1]
129+ let organizerPubKey = fromBase58String(organizerPubKey58)
130+ if ((drawState != STATEREADY))
131+ then throw((sessionId + " draw: it must be in READY state to generate random numbers"))
132+ else if (!(rsaVerify(SHA256, toBytes(sessionId), rsaSign, RSAPUBLIC)))
133+ then throw("Invalid RSA signature")
134+ else {
135+ let currVect = generateRandsVector(sessionId, from, to, rsaSign)
136+ let s = size(currVect)
137+ let rand1 = if ((s >= 1))
138+ then toString(toInt(take(drop(currVect, 0), 8)))
139+ else ""
140+ let rand2 = if ((s >= 2))
141+ then ((rand1 + "_") + toString(toInt(take(drop(currVect, (1 * 8)), 8))))
142+ else rand1
143+ let rand3 = if ((s >= 3))
144+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (2 * 8)), 8))))
145+ else rand2
146+ let rand4 = if ((s >= 4))
147+ then ((rand3 + "_") + toString(toInt(take(drop(currVect, (3 * 8)), 8))))
148+ else rand3
149+ let rand5 = if ((s >= 5))
150+ then ((rand4 + "_") + toString(toInt(take(drop(currVect, (4 * 8)), 8))))
151+ else rand4
152+ let rand6 = if ((s >= 6))
153+ then ((rand5 + "_") + toString(toInt(take(drop(currVect, (5 * 8)), 8))))
154+ else rand5
155+ let rand7 = if ((s >= 7))
156+ then ((rand6 + "_") + toString(toInt(take(drop(currVect, (6 * 8)), 8))))
157+ else rand6
158+ let rand8 = if ((s >= 8))
159+ then ((rand7 + "_") + toString(toInt(take(drop(currVect, (7 * 8)), 8))))
160+ else rand7
161+ let rand9 = if ((s >= 9))
162+ then ((rand8 + "_") + toString(toInt(take(drop(currVect, (8 * 8)), 8))))
163+ else rand8
164+ let rand10 = if ((s >= 10))
165+ then ((rand9 + "_") + toString(toInt(take(drop(currVect, (9 * 8)), 8))))
166+ else rand9
167+ let rand11 = if ((s >= 10))
168+ then ((rand10 + "_") + toString(toInt(take(drop(currVect, (10 * 8)), 8))))
169+ else rand10
170+ let rand12 = if ((s >= 10))
171+ then ((rand11 + "_") + toString(toInt(take(drop(currVect, (11 * 8)), 8))))
172+ else rand11
173+ let rand13 = if ((s >= 10))
174+ then ((rand12 + "_") + toString(toInt(take(drop(currVect, (12 * 8)), 8))))
175+ else rand12
176+ let rand14 = if ((s >= 10))
177+ then ((rand13 + "_") + toString(toInt(take(drop(currVect, (13 * 8)), 8))))
178+ else rand13
179+ let rand15 = if ((s >= 10))
180+ then ((rand14 + "_") + toString(toInt(take(drop(currVect, (14 * 8)), 8))))
181+ else rand14
182+ WriteSet([DataEntry(sessionId, formatStateDataStr(STATEFINISHED, organizerPubKey58, rand15))])
183+ }
184+ }
185+
186+
187+@Verifier(tx)
188+func verify () = match tx {
189+ case dtx: DataTransaction =>
190+ let data0 = dtx.data[0]
191+ let sessionId = take(data0.key, SESSIONIDFIXSIZE)
192+ let drawParamsList = extractGameDataList(sessionId)
193+ let drawState = drawParamsList[0]
194+ let organizerPubKey58 = drawParamsList[1]
195+ let organizerPubKey = fromBase58String(organizerPubKey58)
196+ let dataEntriesCount = size(dtx.data)
197+ if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if ((drawState == STATEINIT))
198+ then sigVerify(tx.bodyBytes, tx.proofs[0], organizerPubKey)
199+ else false)
200+ then (dataEntriesCount > 0)
201+ else false)
202+ then (15 >= dataEntriesCount)
203+ else false)
204+ then validateDtxKey(sessionId, data0, dataEntriesCount, 0)
205+ else false)
206+ then validateDtxKey(sessionId, dtx.data[1], dataEntriesCount, 1)
207+ else false)
208+ then validateDtxKey(sessionId, dtx.data[2], dataEntriesCount, 2)
209+ else false)
210+ then validateDtxKey(sessionId, dtx.data[3], dataEntriesCount, 3)
211+ else false)
212+ then validateDtxKey(sessionId, dtx.data[4], dataEntriesCount, 4)
213+ else false)
214+ then validateDtxKey(sessionId, dtx.data[5], dataEntriesCount, 5)
215+ else false)
216+ then validateDtxKey(sessionId, dtx.data[6], dataEntriesCount, 6)
217+ else false)
218+ then validateDtxKey(sessionId, dtx.data[7], dataEntriesCount, 7)
219+ else false)
220+ then validateDtxKey(sessionId, dtx.data[8], dataEntriesCount, 8)
221+ else false)
222+ then validateDtxKey(sessionId, dtx.data[9], dataEntriesCount, 9)
223+ else false)
224+ then validateDtxKey(sessionId, dtx.data[10], dataEntriesCount, 10)
225+ else false)
226+ then validateDtxKey(sessionId, dtx.data[11], dataEntriesCount, 11)
227+ else false)
228+ then validateDtxKey(sessionId, dtx.data[12], dataEntriesCount, 12)
229+ else false)
230+ then validateDtxKey(sessionId, dtx.data[13], dataEntriesCount, 13)
231+ else false)
232+ then validateDtxKey(sessionId, dtx.data[14], dataEntriesCount, 14)
233+ else false
234+ case sstx: SetScriptTransaction =>
235+ true
236+ case ttx: TransferTransaction =>
237+ true
238+ case _ =>
239+ false
240+}
241+

github/deemru/w8io/026f985 
59.03 ms