tx · 8FtQXinA5j9ZBq53rm8GWNwbioc6oijLm1YQ1dYmCgYu

3N9x2ri3yK2yqXfjUXT6U3W7CxEfXkSDVrv:  -0.01500000 Waves

2019.06.27 00:21 [559633] smart account 3N9x2ri3yK2yqXfjUXT6U3W7CxEfXkSDVrv > SELF 0.00000000 Waves

{ "type": 13, "id": "8FtQXinA5j9ZBq53rm8GWNwbioc6oijLm1YQ1dYmCgYu", "fee": 1500000, "feeAssetId": null, "timestamp": 1561584104282, "version": 1, "sender": "3N9x2ri3yK2yqXfjUXT6U3W7CxEfXkSDVrv", "senderPublicKey": "9grsXe8gKXQZSDejZW7FFuvSkjYWMmEb1cy1EtJQCXNF", "proofs": [ "2mtKrtjG4UFsMHtKbbPXXVpVLatt5PRuAaSAqE4LPhStrNSHNgDjZVrndz7xnegLXHPq5o6cL7cx9XVy96SuYPC1" ], "script": "base64:AAIDAAAAAAAAAAAAAAANAAAAAAlSU0FQVUJMSUMJAAJbAAAAAQIAAAGPYmFzZTY0Ok1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcWxBaUFOU21CcERIWUtQOXNLZ2VOL2wxYkFiMjhnL3RHbGdEa3dUNUZpTU40WDNwd2R2ZHhFN212U1I4LzQxZFU5cng0akcrNnRacGIxVUxWRFBzNDMxdFIySVJhVFh3NUNqK0FjMnZoTCs1SmFtQ2VyR0QxVVcrYmgvRUdRdHhvOFczWUxEcm9mWEI1UUhKeDRQa3oyS2dmK29TL0M4aEh1Qi9VNGtyTzc2VTA1MDdHVGpaUFA5a1JRMHVMU01lcVFYdDh3WFMrbk1wNXdhanF4UHBETE1hU1JFZ3NLd3YvQUVrUDRkenBUWWJpa0xCWWw0cXRkSnNEODRITEZTa2l3ZDNCaGNPclBqb0lZbUx4UXVCRDVUSU1LVEtEM3NkWmdhWTlyc3lxeDNBMDBpbm55eEQ2enAzYjRnRnBVT1g4SnhLWmRFQzJteUVxbGVOZ2c3R3p3SURBUUFCAAAAAAZTRVJWRVIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM05DaUcyOExtV3lUaWdXRzEzRTVRbnZkSEJzWkZZWFNTMmoAAAAAEFNFU1NJT05JREZJWFNJWkUAAAAAAAAAADIAAAAACUVNUFRZVkVDVAkAAZsAAAABAgAAAAAAAAAACVNUQVRFSU5JVAIAAAAESU5JVAAAAAAKU1RBVEVSRUFEWQIAAAAFUkVBRFkAAAAADVNUQVRFRklOSVNIRUQCAAAACEZJTklTSEVEAQAAAANhYnMAAAABAAAAA3ZhbAMJAABmAAAAAgAAAAAAAAAAAAUAAAADdmFsCQEAAAABLQAAAAEFAAAAA3ZhbAUAAAADdmFsAQAAABJmb3JtYXRTdGF0ZURhdGFTdHIAAAADAAAACWRyYXdTdGF0ZQAAABFvcmdhbml6ZXJQdWJLZXk1OAAAAAtyYW5kT3JFbXB0eQQAAAAMZnVsbFN0YXRlU3RyCQABLAAAAAIJAAEsAAAAAgUAAAAJZHJhd1N0YXRlAgAAAAFfBQAAABFvcmdhbml6ZXJQdWJLZXk1OAMJAAAAAAAAAgUA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AA9vcmdhbml6ZXJQdWJLZXkJAAJZAAAAAQUAAAARb3JnYW5pemVyUHViS2V5NTgDCQEAAAACIT0AAAACBQAAAAlkcmF3U3RhdGUFAAAACVNUQVRFSU5JVAkAAAIAAAABCQABLAAAAAIFAAAACXNlc3Npb25JZAIAAAA+IGRyYXc6IG1vdmluZyBpbnRvIFJFQURZIHN0YXRlIGlzIGFsbG93ZWQgb25seSBmcm9tIElOSVQgc3RhdGUDCQEAAAACIT0AAAACBQAAAA9vcmdhbml6ZXJQdWJLZXkIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABCQABLAAAAAIFAAAACXNlc3Npb25JZAIAAAA7ZHJhdzogbW92aW5nIGludG8gUkVBRFkgc3RhdGUgaXMgYWxsb3dlZCBmb3Igb3JnYW5pemVyIG9ubHkEAAAACnJlYWR5U3RhdGUJAQAAABJmb3JtYXRTdGF0ZURhdGFTdHIAAAADBQAAAApTVEFURVJFQURZBQAAABFvcmdhbml6ZXJQdWJLZXk1OAIAAAAACQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAlzZXNzaW9uSWQFAAAACnJlYWR5U3RhdGUFAAAAA25pbAAAAAFpAQAAAAZyYW5kb20AAAACAAAACXNlc3Npb25JZAAAAAdyc2FTaWduBAAAAARmcm9tAAAAAAAAAAABBAAAAAJ0bwAAAAAAAAAAZAQAAAAOZHJhd1BhcmFtc0xpc3QJAQAAABNleHRyYWN0R2FtZURhdGFMaXN0AAAAAQUAAAAJc2Vzc2lvbklkBAAAAAlkcmF3U3RhdGUJAAGRAAAAAgUAAAAOZHJhd1BhcmFtc0xpc3QAAAAAAAAAAAAEAAAAEW9yZ2FuaXplclB1YktleTU4CQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0AAAAAAAAAAABBAAAAA9vcmdhbml6ZXJQdWJLZXkJAAJZAAAAAQUAAAARb3JnYW5pemVyUHViS2V5NTgDCQEAAAACIT0AAAACBQAAAAlkcmF3U3RhdGUFAAAAClNUQVRFUkVBRFkJAAACAAAAAQkAASwAAAACBQAAAAlzZXNzaW9uSWQCAAAAOyBkcmF3OiBpdCBtdXN0IGJlIGlu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AAAAAAoJAAEsAAAAAgkAASwAAAACBQAAAAZyYW5kMTACAAAAAV8JAAGkAAAAAQkABLEAAAABCQAAyQAAAAIJAADKAAAAAgUAAAAIY3VyclZlY3QJAABoAAAAAgAAAAAAAAAACgAAAAAAAAAACAAAAAAAAAAACAUAAAAGcmFuZDEwBAAAAAZyYW5kMTIDCQAAZwAAAAIFAAAAAXMAAAAAAAAAAAoJAAEsAAAAAgkAASwAAAACBQAAAAZyYW5kMTECAAAAAV8JAAGkAAAAAQkABLEAAAABCQAAyQAAAAIJAADKAAAAAgUAAAAIY3VyclZlY3QJAABoAAAAAgAAAAAAAAAACwAAAAAAAAAACAAAAAAAAAAACAUAAAAGcmFuZDExBAAAAAZyYW5kMTMDCQAAZwAAAAIFAAAAAXMAAAAAAAAAAAoJAAEsAAAAAgkAASwAAAACBQAAAAZyYW5kMTICAAAAAV8JAAGkAAAAAQkABLEAAAABCQAAyQAAAAIJAADKAAAAAgUAAAAIY3VyclZlY3QJAABoAAAAAgAAAAAAAAAADAAAAAAAAAAACAAAAAAAAAAACAUAAAAGcmFuZDEyBAAAAAZyYW5kMTQDCQAAZwAAAAIFAAAAAXMAAAAAAAAAAAoJAAEsAAAAAgkAASwAAAACBQAAAAZyYW5kMTMCAAAAAV8JAAGkAAAAAQkABLEAAAABCQAAyQAAAAIJAADKAAAAAgUAAAAIY3VyclZlY3QJAABoAAAAAgAAAAAAAAAADQAAAAAAAAAACAAAAAAAAAAACAUAAAAGcmFuZDEzBAAAAAZyYW5kMTUDCQAAZwAAAAIFAAAAAXMAAAAAAAAAAAoJAAEsAAAAAgkAASwAAAACBQAAAAZyYW5kMTQCAAAAAV8JAAGkAAAAAQkABLEAAAABCQAAyQAAAAIJAADKAAAAAgUAAAAIY3VyclZlY3QJAABoAAAAAgAAAAAAAAAADgAAAAAAAAAACAAAAAAAAAAACAUAAAAGcmFuZDE0BAAAAAZyYW5kMTYDCQAAZwAAAAIFAAAAAXMAAAAAAAAAAAoJAAEsAAAAAgkAASwAAAACBQAAAAZyYW5kMTUCAAAAAV8JAAGkAAAAAQkABLEAAAABCQAAyQAAAAIJAADKAAAAAgUAAAAIY3VyclZlY3QJAABoAAAAAgAAAAAAAAAADwAAAAAA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", "chainId": 84, "height": 559633, "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+ let nextInfo16 = nextRand(nextInfo15[0], nextInfo15[1])
66+ let nextInfo17 = nextRand(nextInfo16[0], nextInfo16[1])
67+nextInfo17[0]
68+ }
69+
70+
71+func validateDtxKey (sessionId,data,dataEntriesCount,iteration) = {
72+ let sessionIdFromKey = take(data.key, SESSIONIDFIXSIZE)
73+ if ((iteration >= dataEntriesCount))
74+ then true
75+ else if (if (if ((sessionId == sessionIdFromKey))
76+ then (size(data.key) > SESSIONIDFIXSIZE)
77+ else false)
78+ then !(isDefined(getString(this, data.key)))
79+ else false)
80+ then match data.value {
81+ case str: String =>
82+ true
83+ case _ =>
84+ throw((sessionId + " draw: only String type is accepted for data transactions"))
85+ }
86+ else false
87+ }
88+
89+
90+@Callable(i)
91+func initDraw (sessionId) = {
92+ let base58Valid = (size(fromBase58String(sessionId)) > 0)
93+ if ((size(sessionId) != SESSIONIDFIXSIZE))
94+ then throw("Draw Id must be exactly 50 simbols")
95+ else if (!(base58Valid))
96+ then throw("Draw id must be in Base58 format")
97+ else {
98+ let organizerPubKey58 = toBase58String(i.callerPublicKey)
99+ let initState = formatStateDataStr(STATEINIT, organizerPubKey58, "")
100+ WriteSet([DataEntry(sessionId, initState)])
101+ }
102+ }
103+
104+
105+
106+@Callable(i)
107+func ready (sessionId) = {
108+ let drawParamsList = extractGameDataList(sessionId)
109+ let drawState = drawParamsList[0]
110+ let organizerPubKey58 = drawParamsList[1]
111+ let organizerPubKey = fromBase58String(organizerPubKey58)
112+ if ((drawState != STATEINIT))
113+ then throw((sessionId + " draw: moving into READY state is allowed only from INIT state"))
114+ else if ((organizerPubKey != i.callerPublicKey))
115+ then throw((sessionId + "draw: moving into READY state is allowed for organizer only"))
116+ else {
117+ let readyState = formatStateDataStr(STATEREADY, organizerPubKey58, "")
118+ WriteSet([DataEntry(sessionId, readyState)])
119+ }
120+ }
121+
122+
123+
124+@Callable(i)
125+func random (sessionId,rsaSign) = {
126+ let from = 1
127+ let to = 100
128+ let drawParamsList = extractGameDataList(sessionId)
129+ let drawState = drawParamsList[0]
130+ let organizerPubKey58 = drawParamsList[1]
131+ let organizerPubKey = fromBase58String(organizerPubKey58)
132+ if ((drawState != STATEREADY))
133+ then throw((sessionId + " draw: it must be in READY state to generate random numbers"))
134+ else if (!(rsaVerify(SHA256, toBytes(sessionId), rsaSign, RSAPUBLIC)))
135+ then throw("Invalid RSA signature")
136+ else {
137+ let currVect = generateRandsVector(sessionId, from, to, rsaSign)
138+ let s = size(currVect)
139+ let rand1 = if ((s >= 1))
140+ then toString(toInt(take(drop(currVect, 0), 8)))
141+ else ""
142+ let rand2 = if ((s >= 2))
143+ then ((rand1 + "_") + toString(toInt(take(drop(currVect, (1 * 8)), 8))))
144+ else rand1
145+ let rand3 = if ((s >= 3))
146+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (2 * 8)), 8))))
147+ else rand2
148+ let rand4 = if ((s >= 4))
149+ then ((rand3 + "_") + toString(toInt(take(drop(currVect, (3 * 8)), 8))))
150+ else rand3
151+ let rand5 = if ((s >= 5))
152+ then ((rand4 + "_") + toString(toInt(take(drop(currVect, (4 * 8)), 8))))
153+ else rand4
154+ let rand6 = if ((s >= 6))
155+ then ((rand5 + "_") + toString(toInt(take(drop(currVect, (5 * 8)), 8))))
156+ else rand5
157+ let rand7 = if ((s >= 7))
158+ then ((rand6 + "_") + toString(toInt(take(drop(currVect, (6 * 8)), 8))))
159+ else rand6
160+ let rand8 = if ((s >= 8))
161+ then ((rand7 + "_") + toString(toInt(take(drop(currVect, (7 * 8)), 8))))
162+ else rand7
163+ let rand9 = if ((s >= 9))
164+ then ((rand8 + "_") + toString(toInt(take(drop(currVect, (8 * 8)), 8))))
165+ else rand8
166+ let rand10 = if ((s >= 10))
167+ then ((rand9 + "_") + toString(toInt(take(drop(currVect, (9 * 8)), 8))))
168+ else rand9
169+ let rand11 = if ((s >= 10))
170+ then ((rand10 + "_") + toString(toInt(take(drop(currVect, (10 * 8)), 8))))
171+ else rand10
172+ let rand12 = if ((s >= 10))
173+ then ((rand11 + "_") + toString(toInt(take(drop(currVect, (11 * 8)), 8))))
174+ else rand11
175+ let rand13 = if ((s >= 10))
176+ then ((rand12 + "_") + toString(toInt(take(drop(currVect, (12 * 8)), 8))))
177+ else rand12
178+ let rand14 = if ((s >= 10))
179+ then ((rand13 + "_") + toString(toInt(take(drop(currVect, (13 * 8)), 8))))
180+ else rand13
181+ let rand15 = if ((s >= 10))
182+ then ((rand14 + "_") + toString(toInt(take(drop(currVect, (14 * 8)), 8))))
183+ else rand14
184+ let rand16 = if ((s >= 10))
185+ then ((rand15 + "_") + toString(toInt(take(drop(currVect, (15 * 8)), 8))))
186+ else rand15
187+ let rand17 = if ((s >= 10))
188+ then ((rand16 + "_") + toString(toInt(take(drop(currVect, (16 * 8)), 8))))
189+ else rand16
190+ WriteSet([DataEntry(sessionId, formatStateDataStr(STATEFINISHED, organizerPubKey58, rand17))])
191+ }
192+ }
193+
194+
195+@Verifier(tx)
196+func verify () = match tx {
197+ case dtx: DataTransaction =>
198+ let data0 = dtx.data[0]
199+ let sessionId = take(data0.key, SESSIONIDFIXSIZE)
200+ let drawParamsList = extractGameDataList(sessionId)
201+ let drawState = drawParamsList[0]
202+ let organizerPubKey58 = drawParamsList[1]
203+ let organizerPubKey = fromBase58String(organizerPubKey58)
204+ let dataEntriesCount = size(dtx.data)
205+ if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if ((drawState == STATEINIT))
206+ then sigVerify(tx.bodyBytes, tx.proofs[0], organizerPubKey)
207+ else false)
208+ then (dataEntriesCount > 0)
209+ else false)
210+ then (15 >= dataEntriesCount)
211+ else false)
212+ then validateDtxKey(sessionId, data0, dataEntriesCount, 0)
213+ else false)
214+ then validateDtxKey(sessionId, dtx.data[1], dataEntriesCount, 1)
215+ else false)
216+ then validateDtxKey(sessionId, dtx.data[2], dataEntriesCount, 2)
217+ else false)
218+ then validateDtxKey(sessionId, dtx.data[3], dataEntriesCount, 3)
219+ else false)
220+ then validateDtxKey(sessionId, dtx.data[4], dataEntriesCount, 4)
221+ else false)
222+ then validateDtxKey(sessionId, dtx.data[5], dataEntriesCount, 5)
223+ else false)
224+ then validateDtxKey(sessionId, dtx.data[6], dataEntriesCount, 6)
225+ else false)
226+ then validateDtxKey(sessionId, dtx.data[7], dataEntriesCount, 7)
227+ else false)
228+ then validateDtxKey(sessionId, dtx.data[8], dataEntriesCount, 8)
229+ else false)
230+ then validateDtxKey(sessionId, dtx.data[9], dataEntriesCount, 9)
231+ else false)
232+ then validateDtxKey(sessionId, dtx.data[10], dataEntriesCount, 10)
233+ else false)
234+ then validateDtxKey(sessionId, dtx.data[11], dataEntriesCount, 11)
235+ else false)
236+ then validateDtxKey(sessionId, dtx.data[12], dataEntriesCount, 12)
237+ else false)
238+ then validateDtxKey(sessionId, dtx.data[13], dataEntriesCount, 13)
239+ else false)
240+ then validateDtxKey(sessionId, dtx.data[14], dataEntriesCount, 14)
241+ else false
242+ case sstx: SetScriptTransaction =>
243+ true
244+ case ttx: TransferTransaction =>
245+ true
246+ case _ =>
247+ false
248+}
249+

github/deemru/w8io/873ac7e 
26.60 ms